anchor.diff:            :for column := (+ width 1) :then (+ column width 1)
             :collect column)))
   
  -(defun display-menu (menu)
  +(defun display-menu (menu &optional (mode 'menu-mode))
     (let* ((columns (compute-columns menu))
            (buffer (make-buffer (menu-buffer-name menu)))
            (p (buffer-point buffer)))
  -    (change-buffer-mode buffer 'menu-mode)
  +    (change-buffer-mode buffer mode)
       (setf (variable-value 'truncate-lines :buffer buffer) nil)
       (setf (buffer-read-only-p buffer) t)
       (let ((window (display-buffer buffer)))
  
positive.code:                     :do
                      (insert-string p string :attribute attribute)
                      (move-to-column p column t))
                (put-text-property start p 'function (menu-item-select-function item))))
            (move-to-line (buffer-point buffer) 2))))))
  
  (defun menu-select-1 (set-buffer-fn)
    (alexandria:when-let ((fn (text-property-at (current-point) 'function)))
  
negative.code:    (select-function
      :initarg :select-function
      :initform nil
      :reader menu-item-select-function)
     (plist
      :initarg :plist
      :initform nil
      :reader menu-item-plist)))
  
  (defun append-menu (menu item)
    (setf (menu-items menu)
  