anchor.diff:      (setf (gethash lambda *lambda-parents*) *current-lambda*)
       (let ((*active-environment-vector* lambda)
             (*allow-dx-environment* t)
  -          (*current-lambda* lambda))
  +          (*current-lambda* lambda)
  +          (*current-closure-set* '()))
         (assert (null (lambda-information-environment-arg lambda)))
         (check-simple-lambda-parameters lambda)
         (dolist (arg (lambda-information-required-args lambda))
  
positive.code:         (maybe-add-environment-variable (lambda-information-count-arg lambda)))
        (compute-environment-layout (lambda-information-body lambda))
        (setf env-is-dx (finalize-environment-layout lambda)))
      (unless env-is-dx
        (setf *allow-dx-environment* nil))))
  
  
negative.code:              (not (localp variable)))
      (push variable (gethash *active-environment-vector* *environment-layout*))))
  
  (defun lambda-is-dynamic-extent-p (lambda)
    (or (eql (getf (lambda-information-plist lambda) 'extent) :dynamic)
        (getf (lambda-information-plist lambda) 'declared-dynamic-extent)))
  
  (defun lambda-tree-is-dynamic-extent-p (lambda end)
    (cond ((eql lambda end)
           t)
          (t
           (and (lambda-is-dynamic-extent-p lambda)
                (lambda-tree-is-dynamic-extent-p (gethash lambda *lambda-parents*) end)))))
  
  (defun finalize-environment-layout (env)
    ;; Inner environments must be DX, and every variable (including the parent
    ;; backlink) in this environment must only be accessed by DX lambdas.
    (when (and *allow-dx-environment*
               (not *perform-tce*)
               (every (lambda (var)
  