anchor.diff:    (hypher nil :type boolean)
     (shift nil :type boolean)
     (sym 0 :type string))
  -
  -(defun key-to-char (key)
  -  (cond ((key-ctrl key)
  -         (and (= 1 (length (key-sym key)))
  -              (let ((code (char-code (char-downcase (char (key-sym key) 0)))))
  -                (and code (<= 64 code 95) (- code 64)))))
  -        ((= 1 (length (key-sym key)))
  -         (char (key-sym key) 0))))
   
   (defun match-key (key &key ctrl meta super hypher shift sym)
     (and (eq (key-ctrl key) ctrl)
  
positive.code: 
  (defun insertion-key-sym-p (sym)
    (= 1 (length sym)))
  
negative.code:           key-hypher
            key-shift
            key-sym
            match-key
            insertion-key-sym-p
            key-to-char))
  
  (defstruct key
    (ctrl nil :type boolean)
  