anchor.diff:                 (expand-partially self (expand-in-env form env))
                  ;; Remember `def' returns a symbol.
                  (progn
  -                 (shadow-symbol-macro self var)
  +                 (shadow! self var)
                    (let ((expr (expand-in-env self expr env)))
                      (if (and
                           (or (constantp expr)
  
positive.code:     `(progn ,@(mapcar (op (expand-partially self _)) body)))
    (:method save-symbol-macro (self name exp)
      (push (list name exp) global-symbol-macros))
    (:method shadow-symbol-macro (self name)
      ;; Note that this removes /all/ instances.
      (removef global-symbol-macros name :key #'car))
    (:method expansion-done (self form)
  
negative.code:           ((defconst name expr &optional docstring)
             (expand-partially self `(defconstant ,name ,expr ,docstring)))
            ((defun name args &body body)
             (if *in-binding-form*
                 (expand-partially self
                                   `(defalias ,name
                                      (named-lambda ,name ,args
  