anchor.diff:              |> Map.ofArray
           { Type = t; Readers = getUnionReaders }
   
  +    /// Try to determine a F# discriminated union reader
       and getFsUnionReader (t : Type) = fun() ->
           if FSharpType.IsUnion t then
               getUnionBuilderInfo t
  
positive.code:             |> Some
          else None
  
      and getRecordBuilderInfo (t : Type) : RecordBuilderInfo =
          let fields = FSharpType.GetRecordFields t
          let readers =
  
negative.code:             |> Map.ofArray
          { Type = t; Readers = readers; Ctor = FSharpValue.PreComputeRecordConstructor t; Fields = fields.Length }
  
      /// Reader function for F# record types
      and readRecord (rb : RecordBuilderInfo) attr (xml : ParserInfo) =
          let objects = Array.zeroCreate<obj> rb.Fields
          let rec inner() =
  