Thu Oct 20 12:34:21 EDT 2011
So, what distinguishes a "state-machine" letrec form from a more
general recursive one? All bindings contain primitive operations.
I.e. this is ANF form, but without "app".
Each block ends in a tail call, and no continuation stack is necessary
for evaluating the bindings because they are all primitive functions
Touble here is nesting though. How to represent "return"?
It doesn't seem possible without allowing nesting in app. What is
possible though is nesting several letrec and let bindings in the tail
So essentially, there is no return (ha!).
Only tail calls.
Is that enough?