anchor.diff:      (with-slots ((arr backing-vector) head tail) buff
         (when (< head 0)
           (setf head 0 tail 0))
  -      (setf (aref arr tail) element)
  -      (setf tail (mod (1+ tail) (length arr)))
  +      (setf (svref arr tail) element)
  +      (setf tail (mod (1+ tail) (array-dimension arr 0)))
       t)))
   
   (defun buffer-read-element (buff &optional default)
  
positive.code: of the input sequence to read from. Returns the number of elements written."
    (with-slots ((arr backing-vector) head tail) buff
      (let ((amount-to-save (min (- end start) (buffer-remaining buff)))
            (arr-length (length arr)))
        (when (not (zerop amount-to-save))
          (when (< head 0)
            (setf head 0 tail 0))
          (iter (for element in-sequence seq with-index idx from start below (+ start amount-to-save))
                (setf (aref arr tail) element)
                (setf tail (mod (1+ tail) arr-length))
                (finally (return idx)))))))
  
  
negative.code: (defun buffer-limit (buff)
    (declare (buffer buff))
    "Get the total available size of the buffer"
    (array-dimension (slot-value buff 'backing-vector) 0))
  
  (defun buffer-available (buff)
    (declare (buffer buff))
  