anchor.diff:              parseEllipsis() // tolerate ... or {...}
           ensure(i < s.Length && s.[i] = '}')
           i <- i + 1
  -        JsonValue.Record(pairs.ToArray())
  +        let arr = pairs.ToArray()
  +        pairs.Clear()
  +        JsonValue.Record(arr)
   
       and parseArray() =
           ensure(i < s.Length && s.[i] = '[')
           i <- i + 1
           skipWhitespace()
  -        let vals = ResizeArray<_>()
           if i < s.Length && s.[i] <> ']' then
               vals.Add(parseValue())
               skipWhitespace()
  
positive.code:     and parseString() =
          ensure(i < s.Length && s.[i] = '"')
          i <- i + 1
          let buf = new StringBuilder()
          while i < s.Length && s.[i] <> '"' do
              if s.[i] = '\\' then
                  ensure(i+1 < s.Length)
  
negative.code:             parseEllipsis() // tolerate ... or {...}
          ensure(i < s.Length && s.[i] = ']')
          i <- i + 1
          let arr = vals.ToArray()
          vals.Clear()
          JsonValue.Array(arr)
  
      and parseLiteral(expected, r) =
          ensure(i+expected.Length < s.Length)
  