anchor.diff:                          (if (member :execute situations)
                               (expand-body body)
                               nil))
  -                       (((let let* symbol-macrolet flet labels)
  +                       (((let let* flet labels)
                            bindings &body body)
                           (let ((in-let? t)) (declare (special in-let?))
                             (multiple-value-bind (body decls) (parse-body body)
                               `(,(car form) ,bindings
                                 ,@decls
                                 ,(expand-body body)))))
  +                       ((symbol-macrolet bindings &body body)
  +                        (let ((in-let? t)
  +                              (symbol-macros (append bindings symbol-macros)))
  +                          (declare (special in-let? symbol-macros))
  +                          (multiple-value-bind (body decls) (parse-body body)
  +                            `(symbol-macrolet ,bindings
  +                               ,@decls
  +                               ,(expand-body body)))))
  +                       ((macrolet bindings &body body)
  +                        (let ((in-let? t)
  +                              (macros (append bindings macros)))
  +                          (declare (special in-let? macros))
  +                          (multiple-value-bind (body decls) (parse-body body)
  +                            `(macrolet ,bindings
  +                               ,@decls
  +                               ,(expand-body body)))))
                          (((multiple-value-bind destructuring-bind progv)
                            vars expr &body body)
                           (let ((in-let? t)) (declare (special in-let?))
  
positive.code: definitions."
    (multiple-value-bind (body decls) (parse-body orig-body)
      (let (vars hoisted-vars labels macros symbol-macros in-let? orig-form exprs)
        (declare (special in-let? orig-form))
        ;; The complexity here comes from three sources:
  
        ;; 1. Hoisting variable definitions with constant initforms. We
  
negative.code:                         `(block ,name ,(expand-body body)))
                         ((otherwise &rest rest) (declare (ignore rest))
                          (multiple-value-bind (exp exp?)
                              (expand-1 form env :top top)
                            (if exp?
                                (expand-partially exp)
                                (progn
  