anchor.diff:                                              let t = f s p 
                                               let tT = convProvidedTypeDefToTgt t
                                               tT),
  -                                        Some ((let mutable idx = 0 in fun () -> let vs, idx2 = x.GetMembersFromCursor(idx) in idx <- idx2; vs |> Array.map (convMemberDefToTgt xT)), 
  -                                              (let mutable idx = 0 in fun () -> let vs, idx2 = x.GetInterfaceImplsFromCursor(idx) in idx <- idx2; vs |> Array.map convTypeToTgt), 
  -                                              (let mutable idx = 0 in fun () -> let vs, idx2 = x.GetMethodOverridesFromCursor(idx) in idx <- idx2; vs |> Array.map (fun (a,b) -> (convMethodRefToTgt a :?> ProvidedMethod), convMethodRefToTgt b))), 
  +                                        backingDataSource,
                                           (x.GetCustomAttributesData >> convCustomAttributesDataToTgt), 
                                           x.NonNullable,
                                           x.HideObjectMethods) 
  
positive.code:         override __.BaseType = match baseType.Value with Some ty -> ty | None -> null
  
          override __.GetConstructors bindingFlags =
              (//saveCommonBind ("ctor", bindingFlags, None) (fun () -> 
                  getMembers() 
                  |> Array.choose (function :? ConstructorInfo as c when memberBinds false bindingFlags c.IsStatic c.IsPublic -> Some c | _ -> None))
  
          override this.GetMethods bindingFlags =
              (//saveCommonBind ("methods", bindingFlags, None) (fun () -> 
                  getMembers() 
                  |> Array.choose (function :? MethodInfo as m when memberBinds false bindingFlags m.IsStatic m.IsPublic -> Some m | _ -> None)
                  |> (if hasFlag bindingFlags BindingFlags.DeclaredOnly || this.BaseType = null then id else (fun mems -> Array.append mems (this.ErasedBaseType.GetMethods(bindingFlags)))))
  
          override this.GetFields bindingFlags =
              (//saveCommonBind ("fields", bindingFlags, None) (fun () -> 
                  getMembers() 
                  |> Array.choose (function :? FieldInfo as m when memberBinds false bindingFlags m.IsStatic m.IsPublic -> Some m | _ -> None)
                  |> (if hasFlag bindingFlags BindingFlags.DeclaredOnly || this.BaseType = null then id else (fun mems -> Array.append mems (this.ErasedBaseType.GetFields(bindingFlags)))))
  
          override this.GetProperties bindingFlags =
              (//saveCommonBind ("props", bindingFlags, None) (fun () -> 
                  getMembers() 
                  |> Array.choose (function :? PropertyInfo as m when memberBinds false bindingFlags m.IsStatic m.IsPublic -> Some m | _ -> None)
                  |> (if hasFlag bindingFlags BindingFlags.DeclaredOnly || this.BaseType = null then id else (fun mems -> Array.append mems (this.ErasedBaseType.GetProperties(bindingFlags)))))
  
          override this.GetEvents bindingFlags =
              (//saveCommonBind ("events", bindingFlags, None) (fun () -> 
                  getMembers() 
                  |> Array.choose (function :? EventInfo as m when memberBinds false bindingFlags m.IsStatic m.IsPublic -> Some m | _ -> None)
                  |> (if hasFlag bindingFlags BindingFlags.DeclaredOnly || this.BaseType = null then id else (fun mems -> Array.append mems (this.ErasedBaseType.GetEvents(bindingFlags)))))
  
          override __.GetNestedTypes bindingFlags =
              (//saveCommonBind ("nested", bindingFlags, None) (fun () -> 
                  getMembers() 
                  |> Array.choose (function :? Type as m when memberBinds true bindingFlags false m.IsPublic || m.IsNestedPublic -> Some m | _ -> None)
                  |> (if hasFlag bindingFlags BindingFlags.DeclaredOnly || this.BaseType = null then id else (fun mems -> Array.append mems (this.ErasedBaseType.GetNestedTypes(bindingFlags)))))
  
negative.code:                 for  f in elems do
                      for i in f() do
                          interfaceImpls.Add i
                  match backingDataSource with 
                  | None -> () 
                  | Some (_, _getFreshMembers, getInterfaces, _getFreshMethodOverrides) ->
                      interfacesQueue.Add getInterfaces
  
          let getInterfaces() =
  