anchor.diff:  ;; #'equalp tests.
   (defstruct (key (:constructor %make-key (code value modifiers status))
                   (:copier %copy-key))
  -  (code 0 :type integer)
  +  (code 0 :type integer) ; TODO: Can a keycode be 0?  I think not, so 0 might be a good non-value.
     (value "" :type string)
     (modifiers (fset:set) :type fset:wb-set)
     (status :pressed :type key-status-type))
  
positive.code: (declaim (ftype (function (key) keyspecs-type) key->keyspec))
  (defun key->keyspec (key)
    "Return the keyspec of KEY."
    (let ((value (if (zerop (key-code key)) ; TODO: Can a keycode be 0?  I think not.
                     (key-value key)
                     (format nil "#~a" (key-code key))))
          (modifiers (fset:reduce (lambda (&rest mods) (str:join "-" mods))
  
negative.code: (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
  