Fri Apr 25 22:27:35 EDT 2008

weird bug

ok. almost working, except that i get 'stack' instead of '2stack' in
the mexit-update function, while 2stack-mexit gets a '2stack'. i hope
this is not a conceptual error with order of prompt tags..

looks like it is.. i should check if it's possible to mix the
open/close constructs.

basicly, what i'm doing is this: create a shift with a reset in it.

  (shift (E (reset ...)))

the normal operation is nested shifts:

  (reset (E1 (shift (E2 (shift ...)))))

it really should not be a problem: shift can only see the inner reset,
the only way a reset can disappear in a reduction is when it exits
(returns a value).

(reset val) => val

(reset E[(shift k expr)])
=> (reset ((lambda (k) expr)
           (lambda (v) (reset E[v]))))

;; where E has no reset

(reset val) => val

(reset E[(shift k expr)])
=> (reset
    (define (k v) (reset E[v]))

i can't juggle with it yet.. maybe make some test cases?

EDIT: i really don't see it.. put in some logging tags, and i don't
understand that order either.. looks like the 'nested closing' doesn't