anchor.diff:                  match List.tail (removeDuplicatedIndexes path), tree' with
                   | [], t ->
                       asyncVal {
  -                        let! res = buildResolverTree d.Info.ReturnDef fieldCtx fieldExecuteMap t.DeferredValue
  +                        let! res = buildResolverTree d.Info.ReturnDef fieldCtx fieldExecuteMap t.Value
                           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! res = buildResolverTree d.Info.ReturnDef fieldCtx fieldExecuteMap t.DeferredValue
  +                        let! res = buildResolverTree d.Info.ReturnDef fieldCtx fieldExecuteMap t.Value
                           match res with
                           | ResolverError _ -> return! async { return [||] }
                           | _ -> return! async { return [|res, List.rev((p :> obj)::pathAcc)|] }
                       }
                   | ([p; String "__index"] | [p]), t ->
                       asyncVal {
  -                        let! res = buildResolverTree d.Info.ReturnDef fieldCtx fieldExecuteMap t.DeferredValue
  +                        let! res = buildResolverTree d.Info.ReturnDef fieldCtx fieldExecuteMap t.Value
                           return! async { return [|res, List.rev(p::pathAcc)|] }
                       }
                   | [head'; String "__index"; head; String "__index"] as p, ResolverObjectNode n ->
  
positive.code:                 | None -> asyncVal { return ResolverError { Name = name; Message = ctx.Schema.ParseError (GraphQLException (sprintf "GraphQL Interface '%s' is not implemented by the type '%s'" idef.Name resolvedDef.Name)); PathToOrigin = [] } }
              | None ->
                  if ctx.ExecutionInfo.IsNullable
                  then asyncVal { return ResolverObjectNode { Name = name; Value = None; DeferredValue = value; Children = [| |] } }
                  else nullResolverError name
          | Union udef ->
              let possibleTypesFn = ctx.Schema.GetPossibleTypes
  
negative.code:                 | Some v -> buildObjectFields fields objdef ctx fieldExecuteMap name v
                  | None ->
                      if ctx.ExecutionInfo.IsNullable
                      then asyncVal { return ResolverObjectNode { Name = name; Value = None; Children = [| |] } }
                      else nullResolverError name
              | kind -> failwithf "Unexpected value of ctx.ExecutionPlan.Kind: %A" kind
          | Scalar scalardef ->
              let name = ctx.ExecutionInfo.Identifier
              let (coerce: obj -> obj option) = scalardef.CoerceValue
              asyncVal {
                  return ResolverLeaf { Name = name; Value = value |> Option.bind(coerce) }
              }
          | Enum _ ->
              let name = ctx.ExecutionInfo.Identifier
              asyncVal {
                  let value' = value |> Option.bind(fun v ->  coerceStringValue v |> Option.map(fun v' -> v' :> obj))
                  return ResolverLeaf { Name = name; Value = value' }
              }
          | List (Output innerdef) ->
              let innerCtx =
  