anchor.diff:      let fs = getObjectFields t
       let ms = fs |> Array.map (fun x -> x :> System.Reflection.MemberInfo)
       let ds = fs |> Array.map (fun f ->
  -        (i.GetEncodedFieldName (R.TypeDefinition.FromType f.DeclaringType) f.Name,
  +        (i.GetEncodedFieldName f.DeclaringType f.Name,
            decodeOptionalField dD i f f.FieldType))
       fun (x: Value) ->
           match x with
  
positive.code: let getDiscriminatorName (t: System.Type) =
      t.GetCustomAttributesData()
      |> Seq.tryPick (fun cad ->
          if cad.Constructor.DeclaringType <> typeof<A.NamedUnionCasesAttribute> then
              None
          else Some (cad.ConstructorArguments.[0].Value :?> string))
  
  type Reflection.UnionCaseInfo with
      member this.CustomizedName =
  
negative.code:         /// Tag the given encoded value with its type.
          AddTag : System.Type -> Encoded -> Encoded
          /// Get the JSON-encoded name of the given F# record or class field.
          GetEncodedFieldName : System.Type -> string -> string
          /// Find the union case tag of the given JSON object
          /// (represented as a fieldname -> value function)
          GetUnionTag : System.Type -> (string -> option<Value>) -> option<int>
  