anchor.diff:  The first parent has highest priority.")))
   
   
  -;; (declaim (ftype (function (&rest t) keymap) make-keymap)) ; TODO: Fix type.
  +(declaim (ftype (function (&rest keymap) t) make-keymap)) ; TODO: Set type of return value.
   (defun make-keymap (&rest parents)
     (make-instance 'keymap
                    :parents parents
                    ;; We cannot use the standard (make-hash-table :test #'equalp)
  -                 ;; because then it (set "a") and (set "A") would be the same thing.
  +                 ;; because then (set "a") and (set "A") would be the same thing.
                    :entries (fset:map)))
   
   (defun keymap-p (object)
  
positive.code: 
  \"C-M-1 x\" on a QWERTY:
  
    (define-key foo-map '((:code 10 :modifiers (\"C\" \"M\") (:value \"x\")) 'find-file)"
    (let ((keys (if (listp binding)
                    (mapcar (alex:curry #'apply #'make-key) binding)
                    (keyspecs->keys binding))))
  
negative.code:         (when (fset:@ (entries keymap) (first keys))
            ;; TODO: Notify caller properly.
            (warn "Key was bound to ~a" (fset:@ (entries keymap) (first keys))))
          (setf (fset:@  (entries keymap) (first keys)) sym)
          keymap)
        (let ((submap (fset:@ keymap (first keys))))
          (unless (keymap-p submap)
            (setf submap (make-keymap))
  