anchor.diff:    ((%first-line :accessor first-line)
      (%last-line :accessor last-line)
      (%point :reader buffer-point)
  -   (%point-column-hint :initarg :point-column-hint :accessor point-column-hint)
      (%mark :reader buffer-mark)
      (%mark-active :initarg :mark-active :accessor buffer-mark-active)
      (%properties))
  -  (:default-initargs :mark-active nil :point-column-hint 0))
  +  (:default-initargs :mark-active nil))
   
   (defgeneric buffer-property (buffer property-name &optional default))
   (defgeneric (setf buffer-property) (value buffer property-name &optional default))
  
positive.code:    (%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))
  
negative.code:              (new-line (funcall accessor current-line)))
          (cond (new-line
                 (setf (mark-line point) new-line
                       (mark-charpos point) (min (buffer-property buffer 'column-hint)
                                                 (line-length new-line))))
                (t (return))))))
    (values))
  
  (defun test-fill (buffer)
    (let ((width (1- (truncate (editor-width)
  