anchor.diff:                  (> (mark-charpos mark) current-charpos))
           (let ((real-pos (- (line-length current-line) (mark-charpos mark))))
             (setf (mark-line mark) new-line
  -                (mark-charpos mark) real-pos))))
  -    (update-point-column-hint buffer))
  +                (mark-charpos mark) real-pos)))))
     (values))
   
   (defun insert-char (buffer character)
  -  "Insert CHARACTER after point, then advance point."
  +  "Insert CHARACTER after point, then advance point.
  +Don't use this directly, use INSERT instead."
     (let* ((point (buffer-point buffer))
            (current-line (mark-line point))
            (current-charpos (mark-charpos point)))
  
positive.code:         (point-to-mark buffer here))))
    (values))
  
  (defun delete-backward-char (buffer &optional (n 1))
    (delete-forward-char buffer (- n)))
  
  ;;; Point motion.
  
  (defun move-beginning-of-line (buffer)
    (setf (mark-charpos (buffer-point buffer)) 0)
    (update-point-column-hint buffer)
    (values))
  
  (defun move-end-of-line (buffer)
    (let ((point (buffer-point buffer)))
      (setf (mark-charpos point) (line-length (mark-line point))))
    (update-point-column-hint buffer)
    (values))
  
  (defun move-mark (mark &optional (n 1))
  
negative.code:     (let ((mark (copy-mark (buffer-point buffer) :left)))
        (dotimes (i (* (window-rows) 2))
          (dotimes (j width)
            (insert buffer (code-char (+ #x20 i))))
          (insert buffer #\Newline))
        (point-to-mark buffer mark))))
  
  ;;; Mark stuff.
  