Ok, I get it now, thanks Larry. I do still think that you can do what I suggest, but I realize that it's not as easy as handing around a single pad, you would actually need to maintain either a list of pads (outside of the built-in pad stack, probably inside of C<$0>) or a list of C<$0>s, each with their own pad. If you do that, there's something really NIFTY that falls out of it: premature (possibly temporary) exit from a rule results in the restoration of all hypotheticals to their pre-rule state (because the pads in which they live are no longer active (and possibly gone)).
Should you resume such a rule (e.g. because you had gone off to handle a signal or exception), the hypotheticals all pick up their states again and proceed. This kind of atomic hypothetical-updating / reversion could be very valuable (and fast!), since exposing the state of hypotheticals at the moment of a signal or exception doesn't really make a lot of sense, and could cause some programs to fail in surprising ways. Thanks for entertaining this brain-detour of mine. I return you to your regularly scheduled language design without further ado. > Sorry to inhabit your 1% unsureness, but that's precisely where I am. Never doubted it ;-) -- â 781-324-3772 â [EMAIL PROTECTED] â http://www.ajs.com/~ajs