anchor.diff:                  i <- i + 1
           ensure(i < s.Length && s.[i] = '"')
           i <- i + 1
  -        buf.ToString()
  +        let str = buf.ToString()
  +        buf.Clear() |> ignore
  +        str
   
       and parseNum() =
           let start = i
  
positive.code:             parseEllipsis() // tolerate ... or {...}
          ensure(i < s.Length && s.[i] = '}')
          i <- i + 1
          JsonValue.Record(pairs.ToArray())
  
      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()
  
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)
  