Wed Apr 16 09:54:05 EDT 2008
the reset/shift approach has the semantics of breakpoints. let's just
call it that, and make the abstraction complete.
* (make-breakpoint tag mix [more #t])
* (with-breakpoint tag fn state0 value0) -> state,value
* (mix state value) -> state,value
this seems to work well. my only worry is composition: what happens if
there is more than one tag involved? the way to look at this might be
from the outside: a tagged shift only makes sense if it's captured by
a tagged reset, so combinations of tags would be properly dynamicly
nested. in that case, i see no problem.