anchor.diff:      (unless (and (kbd-p kbd)
                    (every #'characterp (kbd-list kbd)))
         (error "define-key: ~s is illegal key" key))
  -    (setf (gethash kbd (keymap-table keymap)) fun)))
  +    (define-key-internal keymap kbd fun)))
  +
  +(defun define-key-internal (keymap kbd fun)
  +  (do ((rest (kbd-list kbd) (cdr rest)))
  +      ((null (cdr rest))
  +       (setf (gethash (car rest) (keymap-table keymap)) fun))
  +    (let ((k (car rest)))
  +      (let ((cmd (gethash k (keymap-table keymap))))
  +        (if (keymap-p cmd)
  +            (setf keymap cmd)
  +            (let ((new-keymap (make-keymap)))
  +              (setf (gethash k (keymap-table keymap))
  +                    new-keymap)
  +              (setf keymap new-keymap)))))))
   
   (defun kbd-to-string (key)
     (format nil "~{~A~^~}"
  
positive.code:                        (buffer-minor-modes))
                   (keymap-find-keybind (mode-keymap (buffer-major-mode)) key)
                   (keymap-find-keybind *global-keymap* key))))
      (function-to-command cmd)))
  
negative.code: (define-key *global-keymap* "C-@" 'undefined-key)
  (define-key *global-keymap* "C-a" 'undefined-key)
  (define-key *global-keymap* "C-b" 'undefined-key)
  ;(define-key *global-keymap* "C-c" 'undefined-key)
  (define-key *global-keymap* "C-d" 'undefined-key)
  (define-key *global-keymap* "C-e" 'undefined-key)
  (define-key *global-keymap* "C-f" 'undefined-key)
  