anchor.diff:               (push lambda *environment*)
                (setf (lambda-information-environment-layout lambda) (compute-environment-layout-debug-info))
                (setf (lambda-information-body lambda)
  -                   `((let ((,new-env (,(if (gethash lambda *environment-layout-dx*)
  -                                           'sys.c::make-dx-simple-vector
  -                                           'sys.int::make-simple-vector)
  -                                       ',(1+ (length local-env)))))
  +                   `((let ((,new-env ,(generate-make-environment lambda (1+ (length local-env)))))
                          ,@(when (rest *environment-chain*)
                              (list (list '(setf sys.int::%svref)
                                          (second (second *environment-chain*))
  
positive.code:                             (gethash env *environment-layout*)))
                    *environment*))))
  
  (defun le-lambda (lambda)
    (let ((*environment-chain* '())
          (*environment* *environment*)
          (local-env (gethash lambda *environment-layout*))
          (*current-lambda* lambda))
      (when *environment*
        ;; The entry environment vector.
        (let ((env (make-lexical-variable :name (gensym "Environment")
  
negative.code: (defvar *environment-layout-dx*)
  (defvar *active-environment-vector*)
  (defvar *allow-dx-environment*)
  (defvar *environment-allocation-mode* nil)
  
  (defun lower-environment (lambda)
    (let ((*environment-layout* (make-hash-table))
  