anchor.diff:      /// 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 _ ->
  +        if cs.StartingIndex <= idxStart && cs.LengthSoFar > idxEnd then
  +            match cs.Source with
  +            | StaticBlock sb ->
  +                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
  +        else
               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`.
  
positive.code:     /// Otherwise, returns `false`.
      let readChar cs (c: outref<_>) (idx: byref<CharStreamIndex>) =
          match cs.Source with
          | _ when idx.Index < cs.StartingIndex ->
              failwithf "Trying to view the %dth character of a stream, while the first %d have already been read." idx.Index cs.StartingIndex
          | StaticBlock sb when idx.Index < uint64 sb.Length ->
              c <- sb.Span.[int idx.Index]
              idx <- idx.Index + GenericOne |> CharStreamIndex
              true
          | StaticBlock _ -> false
  
      /// Creates a `CharSpan` that contains the next `idxTo` characters of a `CharStream` from its position.
      /// On the dynamic block character stream, it ensures that the characters in the span stay in memory.
  
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 =
  