anchor.diff:      let mutable buffer = Array.zeroCreate bufferSize
       let mutable bufferFirstCharacterIndex = 0UL
       let mutable nextReadIndex = 0UL
  -    member private _.CheckDisposed() =
  +    let checkDisposed() =
           if isNull buffer then
               raise <| ObjectDisposedException("Cannot use a dynamic block character stream after being disposed.")
  +    let growBuffer newLength =
  +        Array.Resize(&buffer, newLength)
       member private _.BufferContentLength = nextReadIndex - bufferFirstCharacterIndex |> int
  -    override db.LengthSoFar =
  -        db.CheckDisposed()
  +    override _.LengthSoFar =
  +        checkDisposed()
           nextReadIndex
       override db.TryExpandPastIndex(startingIndex, idx) =
  -        db.CheckDisposed()
  +        checkDisposed()
           // The character we want to read is already in memory. Easy stuff.
           if idx < nextReadIndex then
               true
  
positive.code:         else
              failwith "Cannot expand past the final character in the buffer."
      override db.GetAllCharactersAfterIndex idx =
          db.CheckDisposed()
          let startIndex = idx - bufferFirstCharacterIndex |> int
          ReadOnlySpan(buffer, startIndex, db.BufferContentLength - startIndex)
      override db.GetSpanForCharacters(startIndex, length) =
          db.CheckDisposed()
          let startIndex = startIndex - bufferFirstCharacterIndex |> int
          ReadOnlySpan(buffer, startIndex, length)
      override __.Dispose() =
          buffer <- null
          reader.Dispose()
  
  /// A data structure that supports efficient access to a
  /// read-only sequence of characters. It is not thread-safe.
  
negative.code:         CharStream.Create(str.AsMemory())
      /// Creates a `CharStream` that lazily reads from a `TextReader`.
      /// The size of the stream's internal character buffer can be optionally specified.
      /// `CharStreams` made from this function must be `Dispose`d.
      /// The `TextReader` inside must be separately disposed as well.
      static member Create(reader, [<Optional; DefaultParameterValue(256)>] bufferSize: int) =
          if bufferSize <= 0 then
              invalidArg "bufferSize" "The buffer size cannot be negative."
  