anchor.diff:                               (constantp expr env)
                                ;;Don't hoist if null.
                                (not (null expr))
  -                             ;; Don't hoist unless this is the first binding.
  +                             ;; Don't hoist unless this is the first
  +                             ;; binding for this var.
                                (not (member var vars)))
                               (progn
                                 (push (list var expr) hoisted-vars)
  
positive.code:                           (symbol-macrolet ,symbol-macros
                              (macrolet ,macros
                                ;; As an optimization, hoist constant
                                ;; bindings, e.g. (def x 1), so the compiler
                                ;; can infer their types or make use of
                                ;; declaration.
                                (let (,@hoisted-vars
                                      ,@vars)
                                  ,@var-decls
  
negative.code: The `local' macro is based on Racket's support for internal
  definitions (although not Racket's `local' macro, which does
  something different)."
    (multiple-value-bind (body decls) (parse-body body)
      (let (vars hoisted-vars labels macros symbol-macros)
        (labels ((expand-partially (form)
  