It seems to me that invoke() is doing the right thing by swapping the context, but that there needs to be a yield() method (and opcode?) to balance it out.
Yes, there does need to be one, or rather there needs to be something to refresh a continuation with the current information, since we don't really have a yield as such.
This brings up some nasty issues with coroutines that we need to address, so compilers can emit the proper sequence of code to get or not get a new coroutine as they need.
--
Dan
--------------------------------------"it's like this"------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk