anchor.diff:        (frob-arg (lambda-information-count-arg lambda) count-reg)
         (let ((env-arg (lambda-information-environment-arg lambda)))
           (when env-arg
  -          (let ((env-reg (make-instance 'virtual-register :name :environment)))
  -            (emit (make-instance 'move-instruction
  -                                 :destination env-reg
  -                                 :source closure-reg))
  +          (let ((env-reg closure-reg))
               (when (not (getf (lambda-information-plist lambda) 'sys.c::unwind-protect-cleanup))
                 ;; Read environment pointer from closure object.
                 (let* ((real-env-reg (make-instance 'virtual-register :name :environment))
  
positive.code:              ;; Single value result. First variable bound to the value, remaining
               ;; bound to NIL.
               (when (ast-bindings form)
                 (emit (make-instance 'move-instruction
                                      :destination (first regs)
                                      :source value)))
               (loop
                  for var in (rest (ast-bindings form))
                  for reg in (rest regs)
  
negative.code:                                    :value result)))))
       nil)
      ((:multiple :value)
       (let ((local (gethash form *variable-registers*)))
         ;; Local can be a vreg if it refers to an nlx thunk.
         ;; Note: If it is an NLX thunk, the it'll never be written to and
         ;; there's no need to generate a result temporary.
         (cond ((typep local 'virtual-register)
                local)
               (t
                (let ((result (make-instance 'virtual-register)))
                  (emit (make-instance 'load-local-instruction
                                       :destination result
                                       :local local))
                  result)))))
      (:effect
       :effect)))
  
  