anchor.diff:  			     (functions environment))))
       (if (null c-m-entry)
   	nil
  -	(expander c-m-entry))))
  +	(definition c-m-entry))))
   
   (defun (setf compiler-macro-function) (new-function name &optional environment)
     (unless (null environment)
  
positive.code: 				(and (eq (location entry) base-entry)
  				     (typep entry 'compiler-macro-entry)))
  			      (functions *global-environment*))))
        (if (null c-m-entry)
  	  (unless (null new-function)
  	    (push (make-compiler-macro-entry name new-function)
  		  (function *global-environment*)))
  	  (if (null new-function)
  	      (setf (functions *global-environment*)
  		    (delete c-m-entry (functions *global-environment*)
  			    :test #'eq))
  	      (setf (expander c-m-entry)
  		    new-function)))))
    new-function)
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  
negative.code:   (or (find-if (lambda (entry)
  		 (and (eq (name entry) name)
  		      (typep entry 'global-macro-entry)))
  	       (functions environment))
        (find-if (lambda (entry)
  		 (and (eq (name entry) name)
  		      (typep entry 'global-function-entry)
  		      (not (null (location entry)))
  		      (not (eq (car (storage (location entry))) +unbound+))))
  	       (functions environment))))
  
  ;;; I am not sure what the optional environment argument could be.  It
  ;;; seems to me that it must either be a global environment, i.e. an
  