anchor.diff:                                             (destructuring-bind ,args (rest ,f)
                                                ,@body)))))))
                  (expand-1 (form env)
  +                 "Like macroexpand-1 with local macro and symbol macro definitions."
                    (match form
                      ((and form (type symbol))
                       (if-let (match (assoc form symbol-macros))
  
positive.code:                    (otherwise
                      (macroexpand-1 form env))))
                 (expand (form env)
                   (multiple-value-bind (exp exp?)
                       (expand-1 form env)
                     (if exp?
                         (expand exp env)
                         exp)))
                 (expand-body (body)
                   (expand-partially `(progn ,@body)))
                 (wrap-env (body)
                   (when macros
                     (setf body `((macrolet ,macros ,@body))))
                   (when symbol-macros
                     (setf body `((symbol-macrolet ,symbol-macros ,@body))))
                   body)
                 (at-beginning? ()
                   (nor vars hoisted-vars labels macros symbol-macros exprs))
                 (expand-partially (form)
                   (if (consp form)
                       (destructuring-case form
                         ((defmacro name args &body body)
  
negative.code:       ;; they are declared, they must be available to
        ;; `expand-partially'.
        (labels ((expand-top (forms)
                   "Expand FORMS recursively, wrapping with macros as they are defined."
                   (if (null forms)
                       nil
                       (let ((form (first forms)))
  