anchor.diff:    (:method expand-in-env-1 (self form &optional env)
       "Like macroexpand-1, but handle local symbol macro bindings."
       (if (symbolp form)
  -        (let ((exp (or (assoc form global-symbol-macros)
  -                       (assoc form *local-symbol-macros*))))
  +        (let ((exp (or (assoc form (symbol-macro-bindings *subenv*))
  +                       (assoc form (remove-shadowed global-symbol-macros *subenv*)))))
             (if exp
                 (progn
                   (when (eq (second exp) form)
  
positive.code:    :env nil
     :decls nil))
  
  (defmethods internal-definitions-env
      (self vars decls hoisted-vars labels exprs global-symbol-macros env)
    (:method in-subenv? (self)
      "Are we within a binding form?"
      (or *in-let* global-symbol-macros *local-symbol-macros*))
    (:method at-beginning? (self)
      "Return non-nil if this is the first form in the `local'."
      (not (or vars hoisted-vars labels (in-subenv? self))))
  
negative.code:     `(progn ,@(mapcar (op (expand-partially self _)) body)))
    (:method save-symbol-macro (self name exp)
      (push (list name exp) global-symbol-macros))
    (:method shadow! (self name)
      ;; Note that this removes /all/ instances.
      (removef global-symbol-macros name :key #'car))
    (:method expansion-done (self form)
  