anchor.diff:  (declaim (ftype (function (keymap
                              (types:proper-list keys)
                              (types:proper-list keymap))
  -                          symbol)
  +                          (or symbol keymap))
                   lookup-translated-keys))
   (defun lookup-translated-keys (keymap keys visited)
  -  "Return the symbol associated to KEYS in KEYMAP.
  -Return nil if there is non.
  +  "Return the symbol or keymap associated to KEYS in KEYMAP.
  +Return nil if there is none.
   Keymap parents are looked up one after the other."
     (let ((sym (lookup-keys-in-keymap keymap keys visited)))
       (unless sym
  
positive.code: (declaim (ftype (function (keymap
                             (types:proper-list keys)
                             (types:proper-list keymap))
                            symbol)
                  lookup-keys-in-keymap))
  (defun lookup-keys-in-keymap (keymap keys visited)
    "Return bound symbol or nil if there is none."
    (when keys
      (let ((hit (fset:@ (entries keymap) (first keys))))
        (when hit
  
negative.code:                              (rest keys))))
               (when (and control? shift?)
                 (cons (let ((new-key (copy-key (first keys))))
                         (setf (key-modifiers new-key) (fset:less (key-modifiers new-key) +shift+))
                         new-key)
                       (mapcar (lambda (key)
                                 (let ((new-key (copy-key key)))
                                   (setf (key-modifiers new-key) (fset:less (key-modifiers new-key) +control+))
  