anchor.diff:                      :do
                       (insert-string p string :attribute attribute)
                       (move-to-column p column t))
  -              (put-text-property start p 'function (menu-item-select-function item))))
  +              (put-text-property start p 'function (menu-item-select-function item))
  +              (put-text-property start p 'plist (menu-item-plist item))))
             (move-to-line (buffer-point buffer) 2))))))
  +
  +(defun menu-property-at (point indicator)
  +  (with-point ((p point))
  +    (getf (text-property-at (line-start p) 'plist) indicator)))
   
   (defun menu-select-1 (set-buffer-fn)
     (alexandria:when-let ((fn (text-property-at (current-point) 'function)))
  
positive.code:    (select-function
      :initarg :select-function
      :initform nil
      :reader menu-item-select-function)))
  
  (defun append-menu (menu item)
    (setf (menu-items menu)
  
negative.code:           :for column := (+ width 1) :then (+ column width 1)
            :collect column)))
  
  (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 mode)
      (setf (variable-value 'truncate-lines :buffer buffer) nil)
      (setf (buffer-read-only-p buffer) t)
      (let ((window (display-buffer buffer)))
  