anchor.diff:                                  dict
                                   |> AsyncVal.toAsync
                                   |> Observable.ofAsync
  -                                |> Observable.map (fun (data, err) -> mapDefer data err path d.Kind)
  +                                |> Observable.map (fun (data, err) -> mapDefer data err path)
                                   |> Observable.bind Observable.ofSeq
                                   |> Observable.toSeq
                           let! live = mapLive tree path d fieldCtx
  
positive.code:                             treeToDict tree
                              |> AsyncVal.toAsync
                              |> Observable.ofAsync
                              |> Observable.map (fun (data, err) -> mapDefer data err path d.Kind)
                              |> Observable.bind Observable.ofSeq
                              |> Observable.toSeq
                      let! live = mapLive tree path d fieldCtx
  
negative.code:         match err with
          | [] -> NameValueLookup.ofList ["data", data; "path", upcast path]
          | _ -> NameValueLookup.ofList ["data", data; "errors", upcast (formatErrors err); "path", upcast path]
      let mapDefer (d : KeyValuePair<string, obj>) (e : Error list) (path : obj list) =
          match d.Value, e with
          | null, [] -> Seq.empty
          | :? NameValueLookup as x, _ -> x |> Seq.map (fun x -> nvl path e x.Value)
  