Fri Oct 15 20:38:35 CEST 2010

Separate interpreter from decoder

Currently the VM runs on s-expressions.  This needs to be made
abstract such that the code format doesn't matter.  Start with writing
the decoder interface on top of s-expressions.

There is a small nuance with the current implementation (which creates
"smart" continuations) and a VM that would simply push a return
address.  Can this be eliminated while still working with s-expr?
It's really about push RV or not (let vs. begin).

So it looks like it's an either/or:

 - Use scheme-like syntax trees and have different continuation types.

 - Use a source representation which allows a single continuation type
   (equivalent to that of `begin') and provide explicit pushes.  (Or
   alternatively, `let' with explicit pops.)