anchor.diff:          member x.GetSubVector(range) = boxSource (source.GetSubVector(range))
           member x.MergeWith(sources) = 
             let sources = 
  -            sources |> List.tryChooseBy (function
  +            sources |> List.ofSeq |> List.tryChooseBy (function
               | :? IBoxedVectorSource<'T> as src -> Some(src.Source)
               | _ -> None)
             match sources with 
  
positive.code:   inherit IVirtualVectorSource
    abstract ValueAt : int64 -> OptionalValue<'V>
    abstract GetSubVector : VectorRange -> IVirtualVectorSource<'V>
    abstract MergeWith : IVirtualVectorSource<'V> list -> IVirtualVectorSource<'V>
    abstract LookupRange : LookupKind<'V> -> VectorRange
    abstract LookupValue : 'V * Lookup * Func<Addressing.Address, bool> -> OptionalValue<'V * Addressing.Address> 
  
  
negative.code:     { new IVirtualVectorSource<'TNew> with
          member x.ValueAt(idx) = f (Address.ofInt64 idx) (source.ValueAt(idx)) // TODO: Are we calculating the address correctly here??
          member x.MergeWith(sources) = 
            let sources = sources |> List.ofSeq |> List.tryChooseBy (function
                | :? IMappedVectorSource<'V, 'TNew> as src -> Some(src.Source) | _ -> None)
            match sources with 
            | None -> failwith "Cannot merge frames or series not created by combine"
  