mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-17 08:06:43 -05:00
7 lines
No EOL
7.4 KiB
HTML
7 lines
No EOL
7.4 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Shallow (ocaml.Stdlib.Effect.Shallow)</title><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../../index.html">ocaml</a> » <a href="../../index.html">Stdlib</a> » <a href="../index.html">Effect</a> » Shallow</nav><header class="odoc-preamble"><h1>Module <code><span>Effect.Shallow</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-continuation"><a href="#type-continuation" class="anchor"></a><code><span><span class="keyword">type</span> <span>('a, 'b) continuation</span></span></code></div><div class="spec-doc"><p><code>('a,'b) continuation</code> is a delimited continuation that expects a <code>'a</code> value and returns a <code>'b</code> value.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-fiber"><a href="#val-fiber" class="anchor"></a><code><span><span class="keyword">val</span> fiber : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'b</span>)</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="#type-continuation">continuation</a></span></span></code></div><div class="spec-doc"><p><code>fiber f</code> constructs a continuation that runs the computation <code>f</code>.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-handler"><a href="#type-handler" class="anchor"></a><code><span><span class="keyword">type</span> <span>('a, 'b) handler</span></span><span> = </span><span>{</span></code><ol><li id="type-handler.retc" class="def record field anchored"><a href="#type-handler.retc" class="anchor"></a><code><span>retc : <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'b</span>;</span></code></li><li id="type-handler.exnc" class="def record field anchored"><a href="#type-handler.exnc" class="anchor"></a><code><span>exnc : <span>exn <span class="arrow">-></span></span> <span class="type-var">'b</span>;</span></code></li><li id="type-handler.effc" class="def record field anchored"><a href="#type-handler.effc" class="anchor"></a><code><span>effc : 'c. <span><span><span class="type-var">'c</span> <a href="../index.html#type-t">t</a></span> <span class="arrow">-></span></span> <span><span>(<span><span><span>(<span class="type-var">'c</span>, <span class="type-var">'a</span>)</span> <a href="#type-continuation">continuation</a></span> <span class="arrow">-></span></span> <span class="type-var">'b</span>)</span> option</span>;</span></code></li></ol><code><span>}</span></code></div><div class="spec-doc"><p><code>('a,'b) handler</code> is a handler record with three fields -- <code>retc</code> is the value handler, <code>exnc</code> handles exceptions, and <code>effc</code> handles the effects performed by the computation enclosed by the handler.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-continue_with"><a href="#val-continue_with" class="anchor"></a><code><span><span class="keyword">val</span> continue_with : <span><span><span>(<span class="type-var">'c</span>, <span class="type-var">'a</span>)</span> <a href="#type-continuation">continuation</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'c</span> <span class="arrow">-></span></span> <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="#type-handler">handler</a></span> <span class="arrow">-></span></span> <span class="type-var">'b</span></span></code></div><div class="spec-doc"><p><code>continue_with k v h</code> resumes the continuation <code>k</code> with value <code>v</code> with the handler <code>h</code>.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Continuation_already_resumed</span> <p>if the continuation has already been resumed.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-discontinue_with"><a href="#val-discontinue_with" class="anchor"></a><code><span><span class="keyword">val</span> discontinue_with : <span><span><span>(<span class="type-var">'c</span>, <span class="type-var">'a</span>)</span> <a href="#type-continuation">continuation</a></span> <span class="arrow">-></span></span> <span>exn <span class="arrow">-></span></span> <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="#type-handler">handler</a></span> <span class="arrow">-></span></span> <span class="type-var">'b</span></span></code></div><div class="spec-doc"><p><code>discontinue_with k e h</code> resumes the continuation <code>k</code> by raising the exception <code>e</code> with the handler <code>h</code>.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Continuation_already_resumed</span> <p>if the continuation has already been resumed.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-discontinue_with_backtrace"><a href="#val-discontinue_with_backtrace" class="anchor"></a><code><span><span class="keyword">val</span> discontinue_with_backtrace :
|
||
<span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="#type-continuation">continuation</a></span> <span class="arrow">-></span></span>
|
||
<span>exn <span class="arrow">-></span></span>
|
||
<span><a href="../../Printexc/index.html#type-raw_backtrace">Printexc.raw_backtrace</a> <span class="arrow">-></span></span>
|
||
<span><span><span>(<span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-handler">handler</a></span> <span class="arrow">-></span></span>
|
||
<span class="type-var">'c</span></span></code></div><div class="spec-doc"><p><code>discontinue_with k e bt h</code> resumes the continuation <code>k</code> by raising the exception <code>e</code> with the handler <code>h</code> using the raw backtrace <code>bt</code> as the origin of the exception.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Continuation_already_resumed</span> <p>if the continuation has already been resumed.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-get_callstack"><a href="#val-get_callstack" class="anchor"></a><code><span><span class="keyword">val</span> get_callstack : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="#type-continuation">continuation</a></span> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <a href="../../Printexc/index.html#type-raw_backtrace">Printexc.raw_backtrace</a></span></code></div><div class="spec-doc"><p><code>get_callstack c n</code> returns a description of the top of the call stack on the continuation <code>c</code>, with at most <code>n</code> entries.</p></div></div></div></body></html> |