anchor.diff:        if t.IsGenericType
         then
           t.GetGenericArguments()
  -          |> Seq.tryFind (fun a -> typeof<(IEnumerable<_>)>.MakeGenericType(a).IsAssignableFrom t)
  +          |> Seq.tryFind (fun a -> typedefof<(IEnumerable<_>)>.MakeGenericType(a).IsAssignableFrom t)
         else None
   
       match seqType with
       | t when t = typeof<string> || isNull t -> None
       | t when t.IsArray -> 
           typeof<IEnumerable<_>>.MakeGenericType(seqType.GetElementType()) |> Some
  -    | IsInGenericArguments t -> Some t
  +    | IsInGenericArguments t -> typedefof<(IEnumerable<_>)>.MakeGenericType(t) |> Some
       | InterfacesHaveIenum t -> Some t
       | t when t.BaseType <> null && t.BaseType <> typeof<obj> ->
           findIEnumerable t.BaseType
  
positive.code: type Queryable<'t> (provider:IQueryProvider, tableName, expression:Expression option) =
    new (provider:IQueryProvider, tableName) =
      Queryable<'t>(provider, tableName, None)
    member val Provider:IQueryProvider=provider with get, set
    member val TableName:string=tableName with get, set
    member x.BuildExpression() =
  
negative.code:       queryContext.Execute expression false
      member x.CreateQuery(expression: Expression): IQueryable = 
        let elementType = TypeSystem.getElementType expression.Type
        let args : obj[] = [|x; tableName; Some expression|]
        let ty = typedefof<Queryable<_>>.MakeGenericType(elementType)
        Activator.CreateInstance(ty, args) :?> IQueryable
  