anchor.diff:                 (done)))
            do (pop body)
            finally (done)))))
  +
  +(defclass declaration-form (form)
  +  ())
   
   (defun parse-declaration (declaration environment)
     (macrolet ((extend-env ((var list) &rest datum)
  
positive.code:     (dolist* ((var . value) (binds let))
        (declare (ignore value))
        (setf env (register env :let var :dummy)))
      (setf (body let) (walk-implict-progn let (cddr form) env :declare t))))
  
  (defclass let*-form (variable-binding-form)
    ())
  
negative.code:          collect (cons name (walk-form `(lambda ,args ,@body) flet env)) into bindings
           finally (setf (binds flet) bindings))
        ;;;; walk the body in the new env
        (multiple-value-setf ((body flet) nil (declares flet))
  			   (walk-implict-progn flet
  					       body
  					       (loop
  						  with env = env
  						  for (name . lambda) in (binds flet)
  						  do (setf env (register env :flet name lambda))
  						  finally (return env))
  					       :declare t)))))
  
  (defwalker-handler labels (form parent env)
    (destructuring-bind (binds &body body)
  