Mon May 14 18:13:28 EDT 2012

Executing a word by pushing it's instructions on the return stack.

Why do I need it?  This way I don't need to implement code threading,
just loading literals on a stack.

What does this require?  A union type that represents both primitives
and sequences.

Probably, sequences need to be abstracted.

No, what this changes is explicit "exit", where "exit" re-loads the
return stack.

Basically I have this idea in my head that the return stack is really
just the continuation, which represents an infinite list of
instructions (that might be non-deterministic, i.e. it branches).  The
return stack is then a "cache" for the head of this list.

So, instead of using an instruction pointer, what actually happens is
that the last *PRIMITIVE* instruction on the RS will re-populate RS:
code can only be executed from RS, but can reside anywhere, abstracted
by the particular code representation.

That's it!