anchor.diff:           (when (fboundp function-name)
              (fmakunbound function-name))
            (setf (compiler-macro-function function-name) nil)))
  -  (when (symbolp generic-function-class)
  +  (when (and generic-function-class
  +             (symbolp generic-function-class))
       (setf generic-function-class (find-class generic-function-class)))
     ;; AMOP seems to imply that METHOD-CLASS should always be a class name,
     ;; that feels overly restrictive...
  
positive.code:   (remf all-keys :environment)
    (cond ((fboundp function-name)
           (let ((gf (fdefinition function-name)))
             (when (not (eql (class-of gf) generic-function-class))
               (error "Redefinition of generic function ~S (~S) with different class. Changing from ~S to ~S."
                      function-name gf
                      (class-of gf) generic-function-class))
  
negative.code: (defun ensure-generic-function
         (function-name
          &rest all-keys
          &key generic-function-class
               (method-class 'standard-method)
          &allow-other-keys)
    (cond ((and (symbolp function-name)
  