anchor.diff:  
           (t
            (multiple-value-bind (bound-function matching-keymap translated-key)
  -             (the (or symbol keymap:keymap null)
  +             (the nyxt-keymap-value
                     (keymap:lookup-key key-stack (current-keymaps)))
              (declare (ignore matching-keymap))
              (cond
  
positive.code:                             (error "Undocumented function ~a." ,fn))
                          "."))))
  
  (declaim (ftype (function (string &rest keymap:keymap)
                            keymap:keymap)
                  make-keymap))
  (export-always 'make-keymap)
  (defun make-keymap (name &rest parents)
    "Like `keymap:make-keymap' but only allow binding function symbols.
  
  Example:
  
  \(defvar *my-keymap* (make-keymap \"my-map\")
    \"My keymap.\")"
    (let ((keymap (apply #'keymap:make-keymap name parents)))
      (setf (keymap:bound-type keymap) '(or keymap:keymap function-symbol))
      keymap))
  
  (export-always 'current-keymaps)
  
negative.code:               (log:debug "Prefix binding ~a" (keyspecs key-stack translated-key))
                t)
  
               ((typep bound-function '(or function-symbol command)) ; TODO: Only accept commands?
                (log:debug "Found key binding ~a to ~a" (keyspecs key-stack translated-key) bound-function)
                ;; We save the last key separately to keep it available to the
                ;; command even after key-stack has been reset in the other
  