anchor.diff:  (defun ensure-generic-function
          (function-name
           &rest all-keys
  -        &key (generic-function-class *the-class-standard-gf*)
  +        &key generic-function-class
                (method-class 'standard-method)
           &allow-other-keys)
     (cond ((and (symbolp function-name)
  
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:          (when (fboundp function-name)
             (fmakunbound function-name))
           (setf (compiler-macro-function function-name) nil)))
    (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...
  