anchor.diff:          ensure(i < s.Length && s.[i] = '{')
           i <- i + 1
           skipWhitespace()
  -        let pairs = ResizeArray<_>()
           if i < s.Length && s.[i] = '"' then
               pairs.Add(parsePair())
               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 = pairs.ToArray()
          pairs.Clear()
          JsonValue.Record(arr)
  
      and parseArray() =
          ensure(i < s.Length && s.[i] = '[')
          i <- i + 1
          skipWhitespace()
          if i < s.Length && s.[i] <> ']' then
              vals.Add(parseValue())
              skipWhitespace()
  