sig
  type ('a, 'b) continuation
  val continue : ('a, 'b) Effect.Deep.continuation -> '-> 'b
  val discontinue : ('a, 'b) Effect.Deep.continuation -> exn -> 'b
  val discontinue_with_backtrace :
    ('a, 'b) Effect.Deep.continuation ->
    exn -> Stdlib.Printexc.raw_backtrace -> 'b
  type ('a, 'b) handler = {
    retc : '-> 'b;
    exnc : exn -> 'b;
    effc :
      'c. 'Effect.t -> (('c, 'b) Effect.Deep.continuation -> 'b) option;
  }
  val match_with : ('-> 'a) -> '-> ('a, 'b) Effect.Deep.handler -> 'b
  type 'a effect_handler = {
    effc :
      'b. 'Effect.t -> (('b, 'a) Effect.Deep.continuation -> 'a) option;
  }
  val try_with : ('-> 'a) -> '-> 'Effect.Deep.effect_handler -> 'a
  external get_callstack :
    ('a, 'b) Effect.Deep.continuation -> int -> Stdlib.Printexc.raw_backtrace
    = "caml_get_continuation_callstack"
end