anchor.diff:  
   Support for macros is sharply limited.
   
  -1. Macros and symbol macros must precede all other expressions.
  +1. Macros defined with `defmacro' must precede all other expressions.
   
   2. Macros and symbol macros cannot be defined inside of binding forms
   like `let'.
   
  -3. `symbol-macrolet' and `macrolet' are not allowed at the top level
  -of a `local' form.
  +3. `macrolet' is not allowed at the top level of a `local' form.
   
   These restrictions are undesirable, but well justified: it is
   impossible to handle the general case both correctly and portably, and
  
positive.code: 
  (defvar *in-let*)
  (defvar *orig-form*)
  
  (defmacro nonlocal (&body body)
    `(progn ,@body))
  
negative.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?)
  