anchor.diff:              else nullResolverError name
       | _ -> failwithf "Unexpected value of returnDef: %O" returnDef
   
  -
   and buildObjectFields (fields: ExecutionInfo list) (objdef: ObjectDef) (ctx: ResolveFieldContext) (fieldExecuteMap: FieldExecuteMap) (name: string) (value: obj): AsyncVal<ResolverTree> =
       let rec build (acc: ResolverTree list) = function
           | info::xs ->
  
positive.code: open FSharp.Reflection.FSharpReflectionExtensions
  open System.Collections.Generic
  open FParsec
  
  type Error = string * obj list
  
  
negative.code:                         match d.Info.Kind with
                          | SelectFields [f] -> return! async { return [|res, List.rev (f.Identifier :> obj :: pathAcc)|] }
                          | _ -> return! async { return [|res, List.rev ((List.head path)::pathAcc)|] }
                      }
                  | [String p], t ->
                      asyncVal { 
                          let resolve = asyncVal {
                              let! res = buildResolverTree d.Info.ReturnDef fieldCtx fieldExecuteMap t.Value
                              return! async { return [|res, List.rev((p :> obj)::pathAcc)|] }
                          }
                          let empty = asyncVal { return! async { return [||] } }
                          match tryGetFragmentField d.Info.Ast.SelectionSet t p with
                          | Some field -> if isDeferredField field then return! resolve else return! empty
                          | _ -> return! resolve
                      }
                  | ([p; String "__index"] | [p]), t ->
                      asyncVal { 
  