anchor.diff:  The `local' macro is loosely based on Racket's support for internal
   definitions."
     (multiple-value-bind (body decls) (parse-body orig-body)
  -    (let (vars hoisted-vars labels *in-let* *orig-form* exprs *symbol-macros*)
  +    (let (vars hoisted-vars labels *in-let* *orig-form* exprs symbol-macros)
         (labels ((in-subenv? ()
                    "Are we within a binding form?"
  -                 (or *in-let* *symbol-macros*))
  +                 (or *in-let* symbol-macros))
                  (at-beginning? ()
                    "Return non-nil if this is the first form in the `local'."
                    (not (or vars hoisted-vars labels (in-subenv?))))
  
positive.code:                          (unless exp?
                             (return (values form exps?))))))
                 (wrap-symbol-macros (form)
                   (if (null *symbol-macros*) form
                       `(symbol-macrolet ,*symbol-macros*
                          ,form)))
                 (step-expansion (form)
                   (multiple-value-bind (exp exp?)
  
negative.code:                (expand-in-env-1 (form &optional env)
                   "Like macroexpand-1, but handle local symbol macro bindings."
                   (if (symbolp form)
                       (let ((exp (assoc form symbol-macros)))
                         (if exp
                             (progn
                               (when (eql exp form)
  