mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
16 lines
14 KiB
HTML
16 lines
14 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCEither (containers.CCEither)</title><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.3.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">containers</a> » CCEither</nav><header class="odoc-preamble"><h1>Module <code><span>CCEither</span></code></h1><p>Either Monad</p><p>Module that is compatible with Either form OCaml 4.12 but can be use with any ocaml version compatible with container</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.2</li></ul></header><nav class="odoc-toc"><ul><li><a href="#basics">Basics</a></li><li><a href="#io">IO</a></li></ul></nav><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-iter"><a href="#type-iter" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a iter</span></span><span> = <span><span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-equal"><a href="#type-equal" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a equal</span></span><span> = <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-ord"><a href="#type-ord" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a ord</span></span><span> = <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-printer"><a href="#type-printer" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a printer</span></span><span> = <span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> unit</span></code></div></div><h3 id="basics"><a href="#basics" class="anchor"></a>Basics</h3><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> <span>('a, 'b) t</span></span><span> = <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="../../either/Either/index.html#type-t">Either.t</a></span></span><span> = </span></code><ol><li id="type-t.Left" class="def variant constructor anchored"><a href="#type-t.Left" class="anchor"></a><code><span>| </span><span><span class="constructor">Left</span> <span class="keyword">of</span> <span class="type-var">'a</span></span></code></li><li id="type-t.Right" class="def variant constructor anchored"><a href="#type-t.Right" class="anchor"></a><code><span>| </span><span><span class="constructor">Right</span> <span class="keyword">of</span> <span class="type-var">'b</span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-left"><a href="#val-left" class="anchor"></a><code><span><span class="keyword">val</span> left : <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>left l</code> is <code>Left l</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-right"><a href="#val-right" class="anchor"></a><code><span><span class="keyword">val</span> right : <span><span class="type-var">'b</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>right r</code> is <code>Right r</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_left"><a href="#val-is_left" class="anchor"></a><code><span><span class="keyword">val</span> is_left : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_left x</code> checks if <code>x = Left _</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_right"><a href="#val-is_right" class="anchor"></a><code><span><span class="keyword">val</span> is_right : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_right x</code> checks if <code>x = Right _</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-find_left"><a href="#val-find_left" class="anchor"></a><code><span><span class="keyword">val</span> find_left : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> option</span></span></code></div><div class="spec-doc"><p><code>find_left x</code> returns <code>l</code> if <code>x = Left l</code> and <code>None</code> otherwise.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-find_right"><a href="#val-find_right" class="anchor"></a><code><span><span class="keyword">val</span> find_right : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> option</span></span></code></div><div class="spec-doc"><p><code>find_right x</code> returns <code>r</code> if <code>x = Left r</code> and <code>None</code> otherwise.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map_left"><a href="#val-map_left" class="anchor"></a><code><span><span class="keyword">val</span> map_left : <span><span>(<span><span class="type-var">'a1</span> <span class="arrow">-></span></span> <span class="type-var">'a2</span>)</span> <span class="arrow">-></span></span> <span><span><span>(<span class="type-var">'a1</span>, <span class="type-var">'b</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a2</span>, <span class="type-var">'b</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Map of the Left variant.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map_right"><a href="#val-map_right" class="anchor"></a><code><span><span class="keyword">val</span> map_right : <span><span>(<span><span class="type-var">'b1</span> <span class="arrow">-></span></span> <span class="type-var">'b2</span>)</span> <span class="arrow">-></span></span> <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b1</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b2</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Map of the Right variant.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map"><a href="#val-map" class="anchor"></a><code><span><span class="keyword">val</span> map :
|
||
<span><span class="label">left</span>:<span>(<span><span class="type-var">'a1</span> <span class="arrow">-></span></span> <span class="type-var">'a2</span>)</span> <span class="arrow">-></span></span>
|
||
<span><span class="label">right</span>:<span>(<span><span class="type-var">'b1</span> <span class="arrow">-></span></span> <span class="type-var">'b2</span>)</span> <span class="arrow">-></span></span>
|
||
<span><span><span>(<span class="type-var">'a1</span>, <span class="type-var">'b1</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'a2</span>, <span class="type-var">'b2</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Map using <code>left</code> or <code>right</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-fold"><a href="#val-fold" class="anchor"></a><code><span><span class="keyword">val</span> fold : <span><span class="label">left</span>:<span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'c</span>)</span> <span class="arrow">-></span></span> <span><span class="label">right</span>:<span>(<span><span class="type-var">'b</span> <span class="arrow">-></span></span> <span class="type-var">'c</span>)</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-t">t</a></span> <span class="arrow">-></span></span> <span class="type-var">'c</span></span></code></div><div class="spec-doc"><p>Fold using <code>left</code> or <code>right</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-iter"><a href="#val-iter" class="anchor"></a><code><span><span class="keyword">val</span> iter : <span><span class="label">left</span>:<span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> <span><span class="label">right</span>:<span>(<span><span class="type-var">'b</span> <span class="arrow">-></span></span> unit)</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-t">t</a></span> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Iter using <code>left</code> or <code>right</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-for_all"><a href="#val-for_all" class="anchor"></a><code><span><span class="keyword">val</span> for_all : <span><span class="label">left</span>:<span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> bool)</span> <span class="arrow">-></span></span> <span><span class="label">right</span>:<span>(<span><span class="type-var">'b</span> <span class="arrow">-></span></span> bool)</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-t">t</a></span> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p>Check some property on <code>Left</code> or <code>Right</code> variant.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span><span class="keyword">val</span> equal :
|
||
<span><span class="label">left</span>:<span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> bool)</span> <span class="arrow">-></span></span>
|
||
<span><span class="label">right</span>:<span>(<span><span class="type-var">'b</span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> <span class="arrow">-></span></span> bool)</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-t">t</a></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-t">t</a></span> <span class="arrow">-></span></span>
|
||
bool</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span><span class="keyword">val</span> compare :
|
||
<span><span class="label">left</span>:<span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> int)</span> <span class="arrow">-></span></span>
|
||
<span><span class="label">right</span>:<span>(<span><span class="type-var">'b</span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> <span class="arrow">-></span></span> int)</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-t">t</a></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-t">t</a></span> <span class="arrow">-></span></span>
|
||
int</span></code></div></div><h3 id="io"><a href="#io" class="anchor"></a>IO</h3><div class="odoc-spec"><div class="spec value anchored" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp : <span><span class="label">left</span>:<span><span class="type-var">'a</span> <a href="#type-printer">printer</a></span> <span class="arrow">-></span></span> <span><span class="label">right</span>:<span><span class="type-var">'b</span> <a href="#type-printer">printer</a></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-t">t</a></span> <a href="#type-printer">printer</a></span></span></code></div><div class="spec-doc"><p>Pretty printer.</p></div></div></div></body></html>
|