anchor.diff:     (%font :initarg :font :reader font)
      (%foreground-colour :initarg :foreground-colour :accessor foreground-colour)
      (%background-colour :initarg :background-colour :accessor background-colour)
  +   (%killed-region :initarg :killed-region :accessor killed-region)
      ;; Redisplay state.
      (%current-screen :initarg :screen :accessor editor-current-screen)
  -   (%line-cache :initarg :display-line-cache :accessor display-line-cache)
  -   )
  +   (%line-cache :initarg :display-line-cache :accessor display-line-cache))
     (:default-initargs :pending-event nil
                        :pending-redisplay t
                        :foreground-colour #xFFDCDCCC
                        :background-colour #xFF3E3E3E
  +                     :killed-region nil
                        :screen nil
                        :display-line-cache '()))
   
  
positive.code:   (and (eql (mark-line a) (mark-line b))
         (eql (mark-charpos a) (mark-charpos b))))
  
  (defun make-mark-at-point (buffer &optional kind)
    (copy-mark (buffer-point buffer) kind))
  
  (defun point-to-mark (buffer mark)
    (move-mark-to-mark (buffer-point buffer) mark))
  
  
negative.code:           (t (setf (line-number new-line) (+ (line-number current-line) +line-number-increment+))))
      ;; Update marks.
      (dolist (mark (line-mark-list current-line))
        (when (or (and (eql (mark-kind mark) :right)
                       (eql (mark-charpos mark) current-charpos))
                  (> (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))))
  