4 ms·
If the forward traveling result contains a computation that is dependent on the backward traveling state, and the backward traveling state contains a computatio
by tathougies 8y ago
If the forward traveling result contains a computation that is dependent on the backward traveling state, and the backward traveling state contains a computation that is dependent on the forward traveling result, and either one is forced to a normal form, then yes, you will get bottom. Otherwise, the computation will terminate.
It is a somewhat common thing to use a 'TardisT' monad (combination of reverse and forward state monads) to write assembler-like things, with fixups. The fixups travel backwards, and the generated code travels forward. This terminates, as long as you never examine the generated code when generating the fixups.