anchor.diff:  	   (error "method class must be a class or a name"))))
     (let ((remaining-keys (copy-list all-keyword-arguments)))
       (loop while (remf remaining-keys :generic-function-class))
  +    (loop while (remf remaining-keys :environment))
       (if method-class-p
   	(apply #'reinitialize-instance generic-function
   	       :method-class method-class
  
positive.code:      &rest
         all-keyword-arguments
       &key
         (generic-function-class (find-class 'standard-generic-function))
         (method-class nil method-class-p)
       &allow-other-keys)
    (declare (ignore function-name))
    (cond ((symbolp generic-function-class)
  	 (let ((class (find-class generic-function-class nil)))
  	   (when (null class)
  	     (error "no such generic-function-class ~s"
  		    generic-function-class))
  
negative.code: 	   (error "method class must be a class or a name"))))
    (let ((remaining-keys (copy-list all-keyword-arguments)))
      (loop while (remf remaining-keys :generic-function-class))
      (loop while (remf remaining-keys :environment))
      (setf (sicl-environment:fdefinition function-name environment)
  	  (if method-class-p
  	      (apply #'make-instance generic-function-class
  		     ;; The AMOP does
  