---
name: "Effect.Deep"
section: "3o"
platform: "linux"
package: "ocaml"
version: "5.5.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Effect.Deep"
---

# Effect.Deep(3o)

no description

## NAME

Effect.Deep - no description

## Module

Module   Effect.Deep

## Documentation

Module **Deep**\
  :  **sig end**

Deep handlers

*type* **('a, 'b)** *continuation* =  **('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.
