anchor.diff:                  add sdef.Name def overwrite
                   sdef.Fields
                   |> Map.toSeq
  -                |> Seq.map (fun x -> snd x :?> SubscriptionFieldDef)
  +                |> Seq.map snd
                   |> Seq.collect (fun x -> Array.append [| x.OutputTypeDef :> TypeDef |] (x.Args |> Array.map (fun a -> upcast a.TypeDef)))
  -                |> Seq.map(fun x -> match named x with Some n -> n | _ -> failwith "Expected a Named type!")
  +                |> Seq.map asNamed
                   |> Seq.filter (fun x -> not (map.ContainsKey(x.Name)))
                   |> Seq.iter insert
               | :? ObjectDef as odef ->
  
positive.code:             | :? InterfaceDef as idef ->
                  add idef.Name def overwrite
                  idef.Fields
                  |> Seq.map (fun x -> match named x.TypeDef with Some n -> n | _ -> failwith "Expected a Named type!")
                  |> Seq.filter (fun x -> not (map.ContainsKey(x.Name)))
                  |> Seq.iter insert
              | :? UnionDef as udef ->
  
negative.code:                 |> Map.toSeq
                  |> Seq.map snd
                  |> Seq.collect (fun x -> Seq.append (x.TypeDef :> TypeDef |> Seq.singleton) (x.Args |> Seq.map (fun a -> upcast a.TypeDef)))
                  |> Seq.map asNamed
                  |> Seq.filter (fun x -> not (map.ContainsKey(x.Name)))
                  |> Seq.iter insert
                  odef.Implements
  