anchor.diff:                               (&key name keymap syntax-table mode-hook)
                                &body body)
     `(progn
  -     ,(when mode-hook `(defvar ,mode-hook '()))
  +     ,@(when mode-hook
  +         `((defvar ,mode-hook '())
  +           (setf (mode-hook ',major-mode) ',mode-hook)))
        (pushnew ',major-mode *mode-list*)
        (setf (mode-name ',major-mode) ,name)
        ,@(cond (keymap
  
positive.code:           mode-name
            mode-keymap
            mode-syntax-table
            current-mode-keymap
            find-mode-from-name
            mode-active-p
  
negative.code:   (def mode-keymap)
    (def mode-syntax-table)
    (def mode-enable-hook)
    (def mode-disable-hook)
    (def mode-hook))
  
  (defun current-mode-keymap ()
    (mode-keymap (buffer-major-mode (current-buffer))))
  