anchor.diff:              | NamedType (name, aI) ->
                   tagSerializer.WriteTag(formatter, 0)
   
  -                formatter.WriteString "name" name
  -                assemblyInfoPickler.Write w "assembly" aI
  +                formatter.WriteString "Name" name
  +                assemblyInfoPickler.Write w "Assembly" aI
   
               | ArrayType (et, rk) ->
                   tagSerializer.WriteTag(formatter, 1)
  -                typePickler.Write w "elementType" et
  +                typePickler.Write w "ElementType" et
   
                   match rk with
  -                | None -> formatter.WriteInt32 "rank" 0
  -                | Some r -> formatter.WriteInt32 "rank" r
  +                | None -> formatter.WriteInt32 "Rank" 0
  +                | Some r -> formatter.WriteInt32 "Rank" r
   
               | GenericTypeInstance(dt, tyArgs) ->
                   tagSerializer.WriteTag(formatter, 2)
  -                typePickler.Write w "definition" dt
  -                typeArrayPickler.Write w "typeArgs" tyArgs
  +                typePickler.Write w "GenericDefinition" dt
  +                typeArrayPickler.Write w "TypeArgs" tyArgs
   
               | GenericTypeParam(dt, idx) ->
                   tagSerializer.WriteTag(formatter, 3)
  -                typePickler.Write w "declaringType" dt
  -                formatter.WriteInt32 "index" idx
  +                typePickler.Write w "DeclaringType" dt
  +                formatter.WriteInt32 "Index" idx
   
               | GenericMethodParam(dm, idx) ->
                   tagSerializer.WriteTag(formatter, 4)
  -                methodInfoPickler.Write w "declaringMethod" dm
  -                formatter.WriteInt32 "index" idx
  +                methodInfoPickler.Write w "DeclaringMethod" dm
  +                formatter.WriteInt32 "Index" idx
   
               | Method(dt, rt, signature, isStatic) ->
                   tagSerializer.WriteTag(formatter, 5)
   
  -                formatter.WriteString "signature" signature
  -                formatter.WriteBoolean "isStatic" isStatic
  -
  -                typePickler.Write w "declaringType" dt
  -                typePickler.Write w "reflectedType" (defaultArg rt null)
  +                formatter.WriteString "Signature" signature
  +                formatter.WriteBoolean "IsStatic" isStatic
  +
  +                typePickler.Write w "DeclaringType" dt
  +                typePickler.Write w "ReflectedType" (defaultArg rt null)
   
               | GenericMethodInstance(gm, tyArgs) ->
                   tagSerializer.WriteTag(formatter, 6)
   
  -                methodInfoPickler.Write w "definition" gm
  -                typeArrayPickler.Write w "typeArgs" tyArgs
  +                methodInfoPickler.Write w "GenericDefinition" gm
  +                typeArrayPickler.Write w "TypeArgs" tyArgs
   
               | Constructor(dt, isStatic, cParams) ->
                   tagSerializer.WriteTag(formatter, 7)
   
  -                typePickler.Write w "declaringType" dt
  -                formatter.WriteBoolean "isStatic" isStatic
  -                typeArrayPickler.Write w "params" cParams
  +                typePickler.Write w "DeclaringType" dt
  +                formatter.WriteBoolean "IsStatic" isStatic
  +                typeArrayPickler.Write w "Params" cParams
   
               | Property(dt, rt, name, isStatic) ->
                   tagSerializer.WriteTag(formatter, 8)
   
  -                formatter.WriteString "name" name
  -                formatter.WriteBoolean "isStatic" isStatic
  -
  -                typePickler.Write w "declaringType" dt
  -                typePickler.Write w "reflectedType" (defaultArg rt null)
  +                formatter.WriteString "Name" name
  +                formatter.WriteBoolean "IsStatic" isStatic
  +
  +                typePickler.Write w "DeclaringType" dt
  +                typePickler.Write w "ReflectedType" (defaultArg rt null)
   
               | Field(dt, rt, name, isStatic) ->
                   tagSerializer.WriteTag(formatter, 9)
   
  -                formatter.WriteString "name" name
  -                formatter.WriteBoolean "isStatic" isStatic
  -
  -                typePickler.Write w "declaringType" dt
  -                typePickler.Write w "reflectedType" (defaultArg rt null)
  +                formatter.WriteString "Name" name
  +                formatter.WriteBoolean "IsStatic" isStatic
  +
  +                typePickler.Write w "DeclaringType" dt
  +                typePickler.Write w "ReflectedType" (defaultArg rt null)
   
               | Event(dt, rt, name, isStatic) ->
                   tagSerializer.WriteTag(formatter, 10)
   
  -                formatter.WriteString "name" name
  -                formatter.WriteBoolean "isStatic" isStatic
  -
  -                typePickler.Write w "declaringType" dt
  -                typePickler.Write w "reflectedType" (defaultArg rt null)
  +                formatter.WriteString "Name" name
  +                formatter.WriteBoolean "IsStatic" isStatic
  +
  +                typePickler.Write w "DeclaringType" dt
  +                typePickler.Write w "ReflectedType" (defaultArg rt null)
   
               | Unknown(t, name) ->
                   raise <| new NonSerializableTypeException(t, sprintf "could not serialize '%s'." name)
  
positive.code:             let cMemberInfo =
                  match tagSerializer.ReadTag formatter with
                  | 0 ->
                      let name = formatter.ReadString "name"
                      let assembly = assemblyInfoPickler.Read r "assembly"
                      NamedType(name, assembly)
  
                  | 1 ->
                      let et = typePickler.Read r "elementType"
                      match formatter.ReadInt32 "rank" with
                      | 0 -> ArrayType(et, None)
                      | rk -> ArrayType(et, Some rk)
  
                  | 2 ->
                      let gt = typePickler.Read r "definition"
                      let tyArgs = typeArrayPickler.Read r "typeArgs"
                      GenericTypeInstance(gt, tyArgs)
  
                  | 3 ->
                      let dt = typePickler.Read r "declaringType"
                      let idx = formatter.ReadInt32 "index"
                      GenericTypeParam(dt, idx)
  
                  | 4 ->
                      let dm = methodInfoPickler.Read r "declaringMethod"
                      let idx = formatter.ReadInt32 "index"
                      GenericMethodParam(dm, idx)
  
                  | 5 ->
                      let signature = formatter.ReadString "signature"
                      let isStatic = formatter.ReadBoolean "isStatic"
  
                      let dt = typePickler.Read r "declaringType"
                      let rt = denull <| typePickler.Read r "reflectedType"
  
                      Method(dt, rt, signature, isStatic)
  
                  | 6 ->
                      let gm = methodInfoPickler.Read r "definition"
                      let tyArgs = typeArrayPickler.Read r "typeArgs"
                      GenericMethodInstance(gm, tyArgs)
  
                  | 7 ->
                      let dt = typePickler.Read r "declaringType"
                      let isStatic = formatter.ReadBoolean "isStatic"
                      let cParams = typeArrayPickler.Read r "params"
                      Constructor(dt, isStatic, cParams)
  
                  | 8 ->
                      let name = formatter.ReadString "name"
                      let isStatic = formatter.ReadBoolean "isStatic"
  
                      let dt = typePickler.Read r "declaringType"
                      let rt = denull <| typePickler.Read r "reflectedType"
  
                      Property(dt, rt, name, isStatic)
  
                  | 9 ->
                      let name = formatter.ReadString "name"
                      let isStatic = formatter.ReadBoolean "isStatic"
  
                      let dt = typePickler.Read r "declaringType"
                      let rt = denull <| typePickler.Read r "reflectedType"
  
                      Field(dt, rt, name, isStatic)
  
                  | 10 ->
                      let name = formatter.ReadString "name"
                      let isStatic = formatter.ReadBoolean "isStatic"
  
                      let dt = typePickler.Read r "declaringType"
                      let rt = denull <| typePickler.Read r "reflectedType"
  
                      Event(dt, rt, name, isStatic)
  
  
negative.code:         let assemblyInfoPickler =
              let writer (w : WriteState) (_ : string) (aI : AssemblyInfo) =
                  let formatter = w.Formatter
                  formatter.WriteString "Name" aI.Name
                  formatter.WriteString "Version" aI.Version
                  formatter.WriteString "Culture" aI.Culture
                  formatter.WriteString "PublicKeyToken" aI.PublicKeyToken
  
              let reader (r : ReadState) (_ : string) =
                  let formatter = r.Formatter
                  let name = formatter.ReadString "Name"
                  let version = formatter.ReadString "Version"
                  let culture = formatter.ReadString "Culture" 
                  let pkt = formatter.ReadString "PublicKeyToken"
  
                  {
                      Name = name
  