anchor.diff:                                :binds '())
       (dolist* ((name args &body body) (second form))
         (let ((handler (eval `(lambda ,args ,@body))))
  -        (setf env (register env :macrolet name handler))
  +        (extend env :macrolet name handler)
           (push (cons name handler) (binds macrolet))))
       (setf (binds macrolet) (nreverse (binds macrolet)))
       (multiple-value-setf ((body macrolet) nil (declares macrolet)) (walk-implict-progn macrolet (cddr form) env :declare t))))
  
positive.code:   (let ((walk-env '()))
      (when lexical-env
        (dolist (var (lexical-variables lexical-env))
          (setf walk-env (register walk-env :lexical-let var t)))
        (dolist (fun (lexical-functions lexical-env))
  	(setf walk-env (register walk-env :lexical-flet fun t))))
      walk-env))
  
  ;;;; This takes a Common Lisp form and transforms it into a tree of
  
negative.code:   (with-form-object (symbol-macrolet symbol-macrolet-form :parent parent :source form
                                       :binds '())
      (dolist* ((symbol expansion) (second form))
        (extend env :symbol-macrolet symbol expansion)
        (push (cons symbol expansion) (binds symbol-macrolet)))
      (setf (binds symbol-macrolet) (nreverse (binds symbol-macrolet))
            (body symbol-macrolet) (walk-implict-progn parent (cddr form) env))))
  