anchor.diff:    (when (and (consp text-style)
   	   (eq (first text-style) 'make-text-style))
       (setq text-style (apply #'make-text-style (rest text-style))))
  -  (apply #'make-instance 'menu-item
  +  (apply #'make-instance '%menu-item
   	 :menu-name name :type type :value value
   	 `(,@(and documentationp `(:documentation ,documentation))
   	   ,@(and keystrokep `(:keystroke ,keystroke))
  
positive.code:    (text-style :initarg :text-style :initform nil)
     (keystroke :initarg :keystroke)))
  
  (defmethod print-object ((item menu-item) stream)
    (print-unreadable-object (item stream :identity t :type t)
      (when (slot-boundp item 'menu-name)
        (format stream "~S" (command-menu-item-name item)))
  
negative.code: 
  ;;; According to the specification, command menu items are stored as
  ;;; lists.  This way seems better, and I hope nothing will break.
  (defclass %menu-item (command-item)
    ((menu-name :reader command-menu-item-name :initarg :menu-name)
     (type :initarg :type :reader command-menu-item-type)
     (value :initarg :value :reader command-menu-item-value)
  