anchor.diff:          interface IPickleFormatReader with
               
               member __.BeginReadRoot (tag : string) =
  -                do readElementName reader "FsPickler"
  +                do reader.MoveNext() // initial read
  +                do reader.SkipWhitespace()
  +                if reader.NodeType = XmlNodeType.XmlDeclaration then
  +                    reader.MoveNext ()
  +
  +                reader.ReadElementName "FsPickler"
   
                   let version = reader.["version"]
                   if version <> AssemblyVersionInformation.Version then
  -                    let msg = sprintf "Invalid FsPickler version %s (expected %s)." version AssemblyVersionInformation.Version
  -                    raise <| new InvalidDataException(msg)
  +                    let msg = sprintf "Unsupported FsPickler version %s." version
  +                    raise <| new FormatException(msg)
   
                   let sTag = reader.["type"]
                   if sTag <> tag then
  
positive.code: 
              member __.EndReadObject() =
                  if reader.IsEmptyElement then
                      let _ = reader.Read() in ()
                  else
                      reader.ReadEndElement()
  
  
negative.code: 
              member __.EndReadRoot () =
                  if reader.IsEmptyElement then
                      reader.MoveNext()
                  else
                      reader.ReadEndElement()
  
              member __.BeginReadObject (tag : string) =
                  do reader.ReadElementName tag
  
                  let flags = parseFlagCsv <| reader.["flags"]
  
  