anchor.diff:                                       ;;:color-pair (list :black #x666666)
                                        :title "submenu2" :border t :enable-fkeys t :visible nil))
   
  -           ;; then create the menu-item with the sub-menu2 as value
  -           (item2     (make-instance 'menu-item :name "sub2" :type :menu :value sub-menu2))
  -
              ;; then add that menu-item as an item to the next menu, and so on.
              (sub-menu1 (make-instance 'menu-window
  -                                     :items (cons item2 choices) ;; first item is a submenu
  +                                     :items (cons sub-menu2 choices) ;; first item is a submenu
                                        :position (list 1 41) :scrolled-layout (list 6 1)
                                        ;;:color-pair (list :black #x999999)
                                        :title "submenu1" :border t :enable-fkeys t :visible nil))
   
  -           ;; then create another item with sub-menu1 as value
  -           (item1     (make-instance 'menu-item :name "sub1" :type :menu :value sub-menu1))
  -
              ;; finally, create the main menu containing sub-menu1 as an item
              (menu      (make-instance 'menu-window
  -                                     :items (cons item1 choices)  ;; first item is a submenu
  +                                     :items (cons sub-menu1 choices)  ;; first item is a submenu
                                        :position (list 0 25) :scrolled-layout (list 6 1)
                                        ;;:color-pair (list :black #xcccccc)
                                        :title "menu" :border t :enable-fkeys t :visible nil)))
  
positive.code:                (refresh scr)))
          (#\q (return-from event-case)))
        (close menu))))
      
  (defun t19c2 ()
    "Test the menu-item class for submenus."
    (with-screen (scr :input-echoing nil :input-blocking t :cursor-visibility nil :enable-colors t)
      (let* ((choices '("Choice 0" "Choice 11" "Choice 222" "Choice 3333" "Choice 44444" "Choice 555555"
                        "Choice 6666666" "Choice 7" "Choice 88" "Choice 999"))
             ;; First, create a menu
             ;; TODO: how to determine the position of the sub-menu depending on the parent menu?
  
negative.code:       (loop named menu-case
           do
             (let ((result (select-item menu)))
               ;; TODO: returning an empty list exits the loop.
               (unless result (return-from menu-case))
               (format scr "You chose ~A~%"
                       (mapcar (lambda (x) (if x (.value x)))
                               result))
               (refresh scr)))
        (close menu))))
  
  