anchor.diff:  
   (defmethod translate-simple-instruction
       ((instruction cleavir-ir:funcall-instruction) inputs outputs)
  -  `(setf ,(first outputs)
  -	 (multiple-value-list (traced-funcall
  -			       ,*linkage-environment*
  -			       ,(first inputs)
  -			       ,@(rest inputs)))))
  +  (let* ((owner (gethash instruction *ownerships*))
  +	 (var (gethash owner *dynamic-environment-variables*)))
  +    `(progn (setf *dynamic-environment* ,var)
  +	    (setf ,(first outputs)
  +		  (multiple-value-list (traced-funcall
  +					,*linkage-environment*
  +					,(first inputs)
  +					,@(rest inputs)))))))
   
   (defmethod translate-simple-instruction
       ((instruction cleavir-ir:multiple-value-call-instruction) inputs outputs)
  
positive.code: (defmethod translate-simple-instruction
      ((instruction cleavir-ir:tailcall-instruction) inputs outputs)
    (declare (ignore outputs))
    `(return (traced-funcall
  	    ,*linkage-environment*
  	    ,(first inputs)
  	    ,@(rest inputs))))
  
  (defmethod translate-simple-instruction
      ((instruction cleavir-ir:the-instruction) inputs outputs)
  
negative.code: (defmethod translate-branch-instruction
      ((instruction cleavir-ir:funcall-instruction) inputs outputs successors)
    (declare (ignore outputs successors))
    (let* ((owner (gethash instruction *ownerships*))
  	 (var (gethash owner *dynamic-environment-variables*)))
      `(progn (setf *dynamic-environment* ,var)
  	    (traced-funcall
  	     ,*linkage-environment*
  	     ,(first inputs)
  	     ,@(rest inputs)))))
  