anchor.diff:                  if position > 0 && position < db.Buffer.Length then
                       db.Buffer.[position]
                   else
  -                    failwithf "Trying to get character #%d, while only characters from #%d to #%d have been loaded"
  +                    failwithf "Trying to get character at %d, while only characters from %d to %d have been loaded"
                           idx db.BufferStartingIndex <| db.BufferStartingIndex + uint64 db.Buffer.Length
       /// [omit]
       member x.LengthSoFar =
  
positive.code:     /// Creates an arbitrary object out of the characters at the given `CharSpan` at the returned `Position`.
      /// After that call, the characters at and before the span might be freed from memory, so this function must not be used twice.
      let unpinSpanAndGenerate symbol (fPostProcess: CharStreamCallback<'symbol>) cs (CharSpan (idxStart, idxEnd) as csp) =
          match cs.Source with
          | StaticBlock sb when cs.StartingIndex <= idxStart && uint64 sb.Length > idxEnd ->
              cs.StartingIndex <- idxEnd + 1UL
              let length = idxEnd - idxStart + 1UL |> int
              let span = sb.Span.Slice(int idxStart, length)
              fPostProcess.Invoke(symbol, cs.Position, span), cs.Position
          | StaticBlock _ ->
              failwithf "Trying to read the character span %O, from a stream that was last read at %d." csp cs.StartingIndex
  
      /// Creates a string out of the characters at the given `CharSpan` at the returned `Position`.
  
negative.code:         /// not always full in cases like an end of input.
          mutable BufferEndingIndex: uint64
      }
      /// The real length of the buffer, excluding the unpinned characters at the end.
      member x.BufferContentLength = x.BufferEndingIndex - x.BufferStartingIndex + GenericOne |> int
  
  /// A representation of a `CharStream`.
  type private CharStreamSource =
  