module Shallow:sig..end
type ('a, 'b) continuation
('a,'b) continuation is a delimited continuation that expects a 'a
value and returns a 'b value.
val fiber : ('a -> 'b) -> ('a, 'b) continuationfiber f constructs a continuation that runs the computation f.
type ('a, 'b) handler = {
|
retc : |
|
exnc : |
|
effc : |
}
('a,'b) handler is a handler record with three fields -- retc
is the value handler, exnc handles exceptions, and effc handles the
effects performed by the computation enclosed by the handler.
val continue_with : ('c, 'a) continuation ->
'c -> ('a, 'b) handler -> 'bcontinue_with k v h resumes the continuation k with value v with
the handler h.
Continuation_already_resumed if the continuation has already been
resumed.val discontinue_with : ('c, 'a) continuation ->
exn -> ('a, 'b) handler -> 'bdiscontinue_with k e h resumes the continuation k by raising the
exception e with the handler h.
Continuation_already_resumed if the continuation has already been
resumed.val discontinue_with_backtrace : ('a, 'b) continuation ->
exn -> Printexc.raw_backtrace -> ('b, 'c) handler -> 'cdiscontinue_with k e bt h resumes the continuation k by raising the
exception e with the handler h using the raw backtrace bt as the
origin of the exception.
Continuation_already_resumed if the continuation has already been
resumed.val get_callstack : ('a, 'b) continuation -> int -> Printexc.raw_backtraceget_callstack c n returns a description of the top of the call stack on
the continuation c, with at most n entries.