anchor.diff:                                     `',env-offset))))
                    ,@(let ((info (assoc (second form) new-envs)))
                        (when info
  -                       (list `(setq ,(second info) (sys.int::make-simple-vector ',(1+ (length (third info))))))))
  +                       (if *environment*
  +                           (list `(setq ,(second info) (sys.int::make-simple-vector ',(1+ (length (third info)))))
  +                                 (list (sys.int::function-symbol '(setf sys.int::%svref))
  +                                       (second (first *environment-chain*))
  +                                       (second info)
  +                                       ''0))
  +                           (list `(setq ,(second info) (sys.int::make-simple-vector ',(1+ (length (third info)))))))))
                    ,@(frob-inner (second form))))
                (frob-inner (current-env)
                  (loop for stmt in (cddr form)
  
positive.code:           (mapcar #'lower-env-form (cddr form))))
  
  (defun le-setq (form)
    (if (localp (second form))
        form
        (dolist (e *environment*
                 (error "Can't find variable ~S in environment." (second form)))
          (let* ((layout (gethash e *environment-layout*))
                 (offset (position (second form) layout)))
            (when offset
              (return (list (sys.int::function-symbol '(setf sys.int::%svref))
                            (lower-env-form (third form))
                            (get-env-vector e)
                            `',(1+ offset))))))))
  
  (defun le-multiple-value-bind (form)
    `(multiple-value-bind ,(second form)
  
negative.code:                                          (list (lower-env-form stmt)))))))))
        (if (endp new-envs)
            (frob-outer)
            `(let ,(loop for (stmt env layout) in new-envs
                      collect (list env ''nil))
               ,(frob-outer))))))
  
  (defun le-return-from (form)
  