anchor.diff:  - `defalias', to bind values in the function namespace (like `fbindrec*')
   - `declaim', to make declarations (as with `declare')
   - `defconstant' and `defconst', which behave exactly like symbol macros
  +- `define-symbol-macro', to bind symbol macros (as with `symbol-macrolet')
   
   Also, with serious restrictions, you can use:
   
   - `defmacro', for local macros (as with `defmacro')
  -- `define-symbol-macro', to bind symbol macros (as with `symbol-macrolet')
   
   \(Note that the top-level definition forms defined by Common Lisp
   are (necessarily) supplemented by three from Serapeum: `def',
  
positive.code:                             `(,(car form) ,vars ,expr
                                ,@decls
                                ,(expand-body body)))))
                         ((locally &body body)
                          (multiple-value-bind (body decls) (parse-body body)
                            `(locally ,@decls
  
negative.code: 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*)
        (labels ((in-subenv? ()
                   "Are we within a binding form?"
                   (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?))))
  