anchor.diff:  An event should be bound to the pre-defined function exit-event-loop."
     (flet ((ev (event)
              (let ((keymap (typecase (keymap object)
  +                           ;; the keymap can be a keymap object directly
                              (keymap (keymap object))
  +                           ;; or a symbol as the name of the keymap
                              (symbol (find-keymap (keymap object))))))
                ;; object-local bindings override the external keymap
                ;; an event is checked in the bindings first, then in the external keymap.
                (if (bindings object)
                    (if (assoc event (bindings object))
                        (assoc event (bindings object))
  +                     ;; if there is no handler in the local bindings,
  +                     ;; check if there is a keymap
                        (if (and keymap (bindings keymap))
                            (assoc event (bindings keymap))
                            nil))
  
positive.code: (defun bind (object event handler)
    "Bind the handler function to the event in the bindings alist of the object.
  
  The handlers will be called by the run-event-loop when keyboard or mouse events occur.
  
  The handler functions have two mandatory arguments, window and event.
  
negative.code: 
  The key bindings alist is stored in the bindings slot of the object.
  
  An external keymap can be defined so several objects can share the same
  set of bindings.
  
  Object-local bindings override the external keymap. The local bindings
  are checked first for a handler, then the external keymap.
  
  If no handler is defined for the event, the default event handler t is tried.
  If not even a default handler is defined, the event is ignored.
  
  