THUNK
Stack | Expression | |||
| let { worker_poll_thunk = THUNK(poll_1 monadIO) } in then_1 monadIO worker_poll_thunk $0 |
Variable | Object |
$0 | BLACKHOLE |
main | BLACKHOLE |
monadIO | CON(Monad returnIO thenIO) |
poll | FUN(monad -> let { ret_thunk = THUNK(return_1 monad unit); poll_poll_thunk = THUNK(poll_1 monad) } in then_1 monad ret_thunk poll_poll_thunk) |
realWorld | CON(RealWorld) |
return | FUN(monad -> case monad of { Monad return then -> return }) |
returnIO | FUN(x s -> (# s, x #)) |
then | FUN(monad -> case monad of { Monad return then -> then }) |
thenIO | FUN(m k s -> case m_? s of { (# new_s, result #) -> k_? new_s }) |
unit | CON(Unit) |