anchor.diff:    (#\q 'exit-event-loop)
     (#\a 't28-hello)
     (#\d 't28-clear)
  +  ("^X" *t28-ctrl-x-map*)
     ("^B" 't28b-show-bindings))
   
   (defun t28b ()
  
positive.code:     (bind scr #\u (lambda (win event) (unbind scr '(#\a #\b #\d "^a" "^b" "^d"))))
  
      (clear scr)
      (add-string scr "Type a, b or d. Type q to quit.")
      (terpri scr)
      (refresh scr)
  
  
negative.code:   (make-instance 'keymap :bindings-plist
      (list
       #\q  'exit-event-loop
       #\a  #'t28-hello
       #\d  't28-clear))
    "Define a keymap separately and then set it as a window's event handler before running the event loop.")
  
  (defparameter *t28-ctrl-x-map*
    (make-instance 'keymap :bindings-plist
      (list
       t    (lambda (win event) (format win "^X map: Default event handler ~A~%" event))
       #\k  (lambda (win event) (format win "^X map: ~A~%" event))
       ;; ^T is another prefix key, so the keys in that map can be reached via "^X ^T".
       "^T" *t28-map*))
    "A separately defined keymap bound to the prefix key ^X.")
  
  (defun t28 ()
    "Use run-event-loop and a pre-defined event handler alist. Use a default handler."
  