anchor.diff:  	  (funcall (expander-post e)))))
   
   (defun expander-has-macro? (expander-name macro-name)
  -  (assoc macro-name (expander-macros (assoc expander-name *expanders*))))
  +  (cdr (assoc macro-name (expander-macros (expander-get expander-name)))))
  
positive.code:   pre
    post)
  
  (defun define-expander (expander-name &optional (pre nil) (post nil) (pred nil) (call nil))
    (with (e  (make-expander :macros nil
  						   :pred pred
  
negative.code:     (acons! expander-name e *expanders*)
      (unless pred
        (setf (expander-pred e) #'(lambda (x)
  							      (cdr (assoc x (expander-macros e))))))
      (unless call
        (setf (expander-call e) #'(lambda (fun x)
                                    (apply (cdr (assoc fun (expander-macros e))) x))))))
  
  (defmacro define-expander-macro (expander-name name args body)
    (unless (atom name)
      (error "Atom expected instead of ~A for expander ~A." name expander-name))
    `(acons! ',name
  			#'(,args
  			    ,@(macroexpand body))
  		   (expander-macros (expander-get ,expander-name))))
  
  (defun repeat-while-changes (fun x)
   (with (new (funcall fun x))
  