anchor.diff:      |> Observable.bind(fun v -> 
           buildResolverTree returnType fieldCtx fieldExecuteMap (Some v) 
           |> AsyncVal.map(treeToDict)
  -        |> AsyncVal.map(fun data -> NameValueLookup.ofList["data", upcast data] :> Output)
  +        |> AsyncVal.map(fun (data, err) -> 
  +            match err with
  +            | [] -> NameValueLookup.ofList["data", data.Value] :> Output
  +            | _ -> NameValueLookup.ofList["data", data.Value; "errors", upcast (formatErrors err)] :> Output)
           |> AsyncVal.map(fun d -> printfn "Async dict %A" d;d)
           |> AsyncVal.toAsync
           |> Observable.ofAsync)
  
positive.code:     match o with
      | :? string as s -> String s
      | _ -> Other
  
  let private executeQueryOrMutation (resultSet: (string * ExecutionInfo) []) (ctx: ExecutionContext) (objdef: ObjectDef) (fieldExecuteMap: FieldExecuteMap) value =
      let resultTrees =
  
negative.code:     let rec stringify (sb: System.Text.StringBuilder) deep (o:obj) =
          match o with
          | :? NameValueLookup as lookup ->
              if lookup.Count > 0 then
                  sb.Append("{ ") |> ignore
                  lookup.Buffer
                  |> Array.iter (fun kv -> 
                      sb.Append(kv.Key).Append(": ") |> ignore
                      stringify sb (deep+1) kv.Value
                      sb.Append(",\r\n") |> ignore
                      pad sb deep)
                  sb.Remove(sb.Length - 4 - deep, 4 + deep).Append(" }") |> ignore
          | :? string as s ->
              sb.Append("\"").Append(s).Append("\"") |> ignore
          | :? System.Collections.IEnumerable as s -> 
  