anchor.diff:  
   (defun buffer-get-line (buffer linum)
     (check-linum buffer linum)
  -  (let ((line (%buffer-get-line buffer linum)))
  -    (setf (buffer-cache-linum buffer) linum)
  -    (setf (buffer-cache-line buffer) line)
  -    line))
  +  (line-forward-n (buffer-head-line buffer) (1- linum)))
   
   (defun buffer-get-char (buffer linum charpos)
     (let ((line (buffer-get-line buffer linum)))
  
positive.code:     :initform nil
      :initarg :tail-line
      :accessor buffer-tail-line)
     (cache-line
      :initform nil
      :initarg :cache-line
      :accessor buffer-cache-line)
     (cache-linum
      :initform nil
      :initarg :cache-linum
      :accessor buffer-cache-linum)
     (mark-p
      :initform nil
      :initarg :mark-p
  
negative.code:     (setf (buffer-mark-p buffer) nil)
      t))
  
  (defun check-linum (buffer linum)
    (unless (<= 1 linum (buffer-nlines buffer))
      (error "invalid line number: ~A" linum)))
  