anchor.diff:  
               member __.EndWriteObject () = writer.WriteEndElement()
   
  -            member __.PreferLengthPrefixInSequences = true
  -            member __.WriteNextSequenceElement hasNext = () //if not hasNext then writer.WriteEndElement()
  +            member __.PreferLengthPrefixInSequences = false
  +            member __.WriteNextSequenceElement hasNext = ()
   
               member __.WriteBoolean (tag : string) value = writePrimitive writer tag value
               member __.WriteByte (tag : string) value = writePrimitive writer tag (int value)
  
positive.code:                 if obj.ReferenceEquals(value, null) then
                      writer.WriteAttributeString("null", "true")
                  else
                      writer.WriteAttributeString("length", string value.Length)
                      writer.WriteBase64(value, 0, value.Length)
                  writer.WriteEndElement()
  
  
negative.code: 
                  let flags = parseFlagCsv <| reader.["flags"]
  
                  if ObjectFlags.hasFlag flags ObjectFlags.IsSequenceHeader then
                      isAtEmptySequenceHeader <- reader.IsEmptyElement
  
                  if reader.IsEmptyElement || reader.Read () then ()
                  else
                      raise <| new EndOfStreamException()
  
                  flags
  
              member __.EndReadObject() =
                  if reader.IsEmptyElement then
                      let _ = reader.Read() in ()
                  else
                      reader.ReadEndElement()
  
              member __.PreferLengthPrefixInSequences = false
              member __.ReadNextSequenceElement () = 
                  if isAtEmptySequenceHeader then
                      isAtEmptySequenceHeader <- false
                      false
                  else
                      reader.NodeType <> XmlNodeType.EndElement
  
              member __.ReadBoolean tag = readElementName reader tag ; reader.ReadElementContentAsBoolean()
  
  