anchor.diff:  		 (extend-env ((var list) newdeclare &rest datum)
   		   `(dolist (,var ,list)
   		      (when ,newdeclare (push ,newdeclare declares))
  -		      (setf environment (register environment :declare ,@datum)))))
  +                      (extend environment :declare ,@datum))))
   	(destructuring-bind (type &rest arguments)
   	    declaration
   	  (case type
  
positive.code:                                      :parent labels
                                       :source (list* name arguments body))
           do (push (cons name lambda) (binds labels))
           do (setf env (register env :flet name lambda)))
        (setf (binds labels) (nreverse (binds labels)))
        (loop
           for form in binds
  
negative.code:                               :binds '())
      (dolist* ((name args &body body) (second form))
        (let ((handler (eval `(lambda ,args ,@body))))
          (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))))
  