Effect.Deep(3) OCaml library Effect.Deep(3) NAME Effect.Deep - no description Module Module Effect.Deep Documentation Module Deep : sig end Deep handlers type ('a, 'b) continuation ('a,'b) continuation is a delimited continuation that expects a 'a value and returns a 'b value. val continue : ('a, 'b) continuation -> 'a -> 'b continue k x resumes the continuation k by passing x to k . Raises Continuation_already_resumed if the continuation has already been resumed. val discontinue : ('a, 'b) continuation -> exn -> 'b discontinue k e resumes the continuation k by raising the exception e in k . Raises Continuation_already_resumed if the continuation has already been resumed. val discontinue_with_backtrace : ('a, 'b) continuation -> exn -> Printexc.raw_backtrace -> 'b discontinue_with_backtrace k e bt resumes the continuation k by raising the exception e in k using bt as the origin for the exception. Raises Continuation_already_resumed if the continuation has already been resumed. type ('a, 'b) handler = { retc : 'a -> 'b ; exnc : exn -> 'b ; effc : 'c. 'c Effect.t -> (('c, 'b) continuation -> 'b) option ; } ('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 match_with : ('c -> 'a) -> 'c -> ('a, 'b) handler -> 'b match_with f v h runs the computation f v in the handler h . type 'a effect_handler = { effc : 'b. 'b Effect.t -> (('b, 'a) continuation -> 'a) option ; } 'a effect_handler is a deep handler with an identity value handler fun x -> x and an exception handler that raises any exception fun e -> raise e . val try_with : ('b -> 'a) -> 'b -> 'a effect_handler -> 'a try_with f v h runs the computation f v under the handler h . val get_callstack : ('a, 'b) continuation -> int -> Printexc.raw_backtrace get_callstack c n returns a description of the top of the call stack on the continuation c , with at most n entries. OCamldoc 2024-02-29 Effect.Deep(3)