anchor.diff:      /// The default buffer size is 256 characters. If the specified size is not positive, the default is used.
       /// Also, the character stream must be disposed afterwards.
       let ofTextReaderEx bufferSize textReader =
  +        let buffer = 
  +            if bufferSize > 0 then
  +                bufferSize
  +            else
  +                defaultBufferSize
  +            |> Array.zeroCreate
           {
               Reader = textReader
  -            _Buffer =
  -                if bufferSize > 0 then
  -                    bufferSize
  -                else
  -                    defaultBufferSize
  -                |> ArrayPool.Shared.Rent
  +            Buffer = buffer
               BufferStartingIndex = 0UL
  -            NextReadIndex = 0UL
  +            NextReadIndex = uint64 <| textReader.ReadBlock(buffer, 0, buffer.Length)
           } |> DynamicBlock |> create
   
       /// Creates a `CharStream` from a `TextReader`.
  
positive.code:                 idx <- CharStreamIndex <| idx.Index + GenericOne
                  true
              elif idx.Index = db.NextReadIndex then
                  if db.BufferContentLength = db.Buffer.Length then
                      if db.BufferStartingIndex <> cs.StartingIndex then
                          Array.blit
                              db.Buffer
                              (int <| cs.StartingIndex - db.BufferStartingIndex)
                              db.Buffer
                              0
                              (int <| db.NextReadIndex - cs.StartingIndex)
                          db.BufferStartingIndex <- cs.StartingIndex
                      else
                          let buffer2 = ArrayPool.Shared.Rent(db.Buffer.Length * 2)
                          Array.blit db.Buffer 0 buffer2 0 db.Buffer.Length
                          ArrayPool.Shared.Return(db.Buffer)
                          db._Buffer <- buffer2
                  let cRead = db.Reader.Read()
                  if cRead <> -1 then
                      db.NextReadIndex <- db.NextReadIndex + GenericOne
                      db.Buffer.[int <| idx.Index - db.BufferStartingIndex] <- char cRead
                      c <- cs.Source.[idx.Index]
                      idx <- CharStreamIndex db.NextReadIndex
                      true
                  else
                      false
  
negative.code: open LanguagePrimitives
  open Operators.Checked
  open System
  open System.IO
  
  /// An continuous range of characters that is
  