anchor.diff:          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
  +                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"
  +                let name = formatter.ReadString "Name"
  +                let version = formatter.ReadString "Version"
  +                let culture = formatter.ReadString "Culture" 
  +                let pkt = formatter.ReadString "PublicKeyToken"
   
                   {
                       Name = 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:             | NamedType (name, aI) ->
                  tagSerializer.WriteTag(formatter, 0)
  
                  formatter.WriteString "Name" name
                  assemblyInfoPickler.Write w "Assembly" aI
  
              | ArrayType (et, rk) ->
                  tagSerializer.WriteTag(formatter, 1)
                  typePickler.Write w "ElementType" et
  
                  match rk with
                  | None -> formatter.WriteInt32 "Rank" 0
                  | Some r -> formatter.WriteInt32 "Rank" r
  
              | GenericTypeInstance(dt, tyArgs) ->
                  tagSerializer.WriteTag(formatter, 2)
                  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
  
              | GenericMethodParam(dm, idx) ->
                  tagSerializer.WriteTag(formatter, 4)
                  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)
  
              | GenericMethodInstance(gm, tyArgs) ->
                  tagSerializer.WriteTag(formatter, 6)
  
                  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
  
              | 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)
  
              | 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)
  
              | 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)
  
              | Unknown(t, name) ->
                  raise <| new NonSerializableTypeException(t, sprintf "could not serialize '%s'." name)
  