anchor.diff:      (dolist* ((var &optional initial-value) (mapcar #'ensure-list (second form)))
         (push (cons var (walk-form initial-value let* env)) (binds let*))
         (setf env (register env :let var :dummy)))
  -    (setf (binds let*) (nreverse (binds let*))
  -          (body let*) (walk-implict-progn let* (cddr form) env :declare t))))
  +    (setf (binds let*) (nreverse (binds let*)))
  +    (multiple-value-setf ((body let*) nil (declares let*)) (walk-implict-progn let* (cddr form) env :declare t))))
   
   ;;;; LOCALLY
   
  -(defclass locally-form (form implicit-progn-mixin)
  +(defclass locally-form (form implicit-progn-with-declare-mixin)
     ())
   
   (defwalker-handler locally (form parent env)
     (with-form-object (locally locally-form :parent parent :source form)
  -    (setf (body locally) (walk-implict-progn locally (cdr form) env :declare t))))
  +    (multiple-value-setf ((body locally) nil (declares locally)) (walk-implict-progn locally (cdr form) env :declare t))))
   
   ;;;; MACROLET
   
  -(defclass macrolet-form (form binding-form-mixin implicit-progn-mixin)
  +(defclass macrolet-form (form binding-form-mixin implicit-progn-with-declare-mixin)
     ())
   
   (defwalker-handler macrolet (form parent env)
  
positive.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
        (setf (body 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)
  
negative.code:     (dolist* ((var . value) (binds let))
        (declare (ignore value))
        (setf env (register env :let var :dummy)))
      (multiple-value-setf ((body let) nil (declares let)) (walk-implict-progn let (cddr form) env :declare t))))
  
  (defclass let*-form (variable-binding-form)
    ())
  