anchor.diff:                      { Properties = ps; Attributes = [] }
               Atom.updateAtomDict propertyCache t info
   
  -    and writeClass (info: TypeWriterInfo) (name : NameInfo) (writer : TextWriter) (value : obj) =
  -        writeTag name.Name name writer (writeClassInner info) value
  +    and writeClass func (info: TypeWriterInfo) (name : NameInfo) (writer : TextWriter) (value : obj) =
  +        func name.Name name writer (writeClassInner info) value
   
       and writeClassWithAttributes (info : TypeWriterInfo) (name : NameInfo) (writer : TextWriter) (value : obj) =
           let attr =
  
positive.code:         w.Write("</"); w.Write(name); w.Write('>')
  
      /// XML tag writer function with an additional namespace attribute
      let writeTagNamespace (name : string) (ns : string) (info : NameInfo) (w : TextWriter) writeFunc (value : obj) =
          w.Write('<'); w.Write(name); w.Write(" xmlns=\""); w.Write(ns); w.Write("\">")
          writeFunc info w value
          w.Write("</"); w.Write(name); w.Write('>')
  
negative.code: 
      /// Write the given type using the appropriate serialization logic
      let writeType (writer : TextWriter) element targetType =
          let typeInfo = getTypeInfo targetType
          let name = getDefaultNameInfo typeInfo.ClsName
          let writerFunc = getWriterFunc targetType
          writerFunc name writer element
  
      /// Clear the serializer cache
      let clearCache() =
  