anchor.diff:  (defvar *default-translator* #'translate-shift-control-combinations
     "Default key translator to use in `keymap' objects.")
   
  -;; TODO: Enable override of default and translator in lookup?
   (defclass keymap ()
     ((entries :accessor entries
               :initarg :entries
  
positive.code: 
  (declaim (ftype (function (keymap
                             list-of-keys
                             list-of-keymaps)
                            (or keymap t))
                  lookup-key*))
  (defun lookup-key* (keymap keys visited)
    "Internal function, see `lookup-key' for the user-facing function.
  VISITED is used to detect cycles."
    (if (find keymap visited)
        (warn "Cycle detected in keymap ~a" keymap)
        (some (lambda (keys)
                (lookup-translated-keys keymap keys (cons keymap visited)))
              (cons keys (funcall (or (translator keymap) (constantly nil)) keys)))))
  
  (declaim (ftype (function ((or list-of-keys keyspecs-type) keymap &rest keymap)
                            (or keymap t))
                  lookup-key))
  (defun lookup-key (keys-or-keyspecs keymap &rest more-keymaps)
    ;; We name this user-facing function using the singular form to be consistent
    ;; with `define-key'.
    "Return the value bound to KEYS-OR-KEYSPECS in KEYMAP.
  
negative.code: 
  First keymap parents are lookup up one after the other.
  Then keys translation are looked up one after the other.
  The same is done for the successive MORE-KEYMAPS.
  
  When non-nil, TRANSLATOR-OVERRIDE and DEFAULT-OVERRIDE are used instead of the
  individual keymaps `translator' and `default' value, respectively."
    (let ((keys (if (stringp keys-or-keyspecs)
                    (keymap::keyspecs->keys keys-or-keyspecs)
                    keys-or-keyspecs)))
      (or (values (some (alex:rcurry #'lookup-key* keys '()
                                     :translator-override translator-override)
                        (cons keymap more-keymaps))
                  t)
          (values (or default-override (default keymap))
                  nil))))
  
  (defparameter *print-shortcut* t
  