mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 03:05:28 -05:00
2 lines
No EOL
33 KiB
HTML
2 lines
No EOL
33 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCOpt (containers.CCOpt)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.2"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">containers</a> » CCOpt</nav><h1>Module <code>CCOpt</code></h1><h2 id="options"><a href="#options" class="anchor"></a>Options</h2><nav class="toc"><ul><li><a href="#applicative">Applicative</a></li><li><a href="#alternatives">Alternatives</a></li><li><a href="#infix-operators">Infix Operators</a></li><li><a href="#conversion-and-io">Conversion and IO</a></li></ul></nav></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> <span>+'a t</span></code><code> = <span><span class="type-var">'a</span> option</span></code></dt></dl><dl><dt class="spec value" id="val-map"><a href="#val-map" class="anchor"></a><code><span class="keyword">val</span> map : <span>(<span class="type-var">'a</span> <span>-></span> <span class="type-var">'b</span>)</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>map f o</code> applies the function <code>f</code> to the element inside <code>o</code>, if any.</p></dd></dl><dl><dt class="spec value" id="val-map_or"><a href="#val-map_or" class="anchor"></a><code><span class="keyword">val</span> map_or : <span>default:<span class="type-var">'b</span></span> <span>-></span> <span>(<span class="type-var">'a</span> <span>-></span> <span class="type-var">'b</span>)</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span class="type-var">'b</span></code></dt><dd><p><code>map_or ~default f o</code> is <code>f x</code> if <code>o = Some x</code>, <code>default</code> otherwise.</p><dl><dt>since</dt><dd>0.16</dd></dl></dd></dl><dl><dt class="spec value" id="val-map_lazy"><a href="#val-map_lazy" class="anchor"></a><code><span class="keyword">val</span> map_lazy : <span>(unit <span>-></span> <span class="type-var">'b</span>)</span> <span>-></span> <span>(<span class="type-var">'a</span> <span>-></span> <span class="type-var">'b</span>)</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span class="type-var">'b</span></code></dt><dd><p><code>map_lazy default_fn f o</code> if <code>f o</code> if <code>o = Some x</code>, <code>default_fn ()</code> otherwise.</p><dl><dt>since</dt><dd>1.2</dd></dl></dd></dl><dl><dt class="spec value" id="val-is_some"><a href="#val-is_some" class="anchor"></a><code><span class="keyword">val</span> is_some : <span><span class="type-var">_</span> <a href="index.html#type-t">t</a></span> <span>-></span> bool</code></dt><dd><p><code>is_some (Some x)</code> returns <code>true</code> otherwise it returns <code>false</code>.</p></dd></dl><dl><dt class="spec value" id="val-is_none"><a href="#val-is_none" class="anchor"></a><code><span class="keyword">val</span> is_none : <span><span class="type-var">_</span> <a href="index.html#type-t">t</a></span> <span>-></span> bool</code></dt><dd><p><code>is_none None</code> returns <code>true</code> otherwise it returns <code>false</code>.</p><dl><dt>since</dt><dd>0.11</dd></dl></dd></dl><dl><dt class="spec value" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span class="keyword">val</span> compare : <span>(<span class="type-var">'a</span> <span>-></span> <span class="type-var">'a</span> <span>-></span> int)</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> int</code></dt><dd><p><code>compare comp o1 o2</code> compares two options <code>o1</code> and <code>o2</code>, using custom comparators <code>comp</code> for the value. <code>None</code> is always assumed to be less than <code>Some _</code>.</p></dd></dl><dl><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <span>(<span class="type-var">'a</span> <span>-></span> <span class="type-var">'a</span> <span>-></span> bool)</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> bool</code></dt><dd><p><code>equal p o1 o2</code> tests for equality between option types <code>o1</code> and <code>o2</code>, using a custom equality predicate <code>p</code>.</p></dd></dl><dl><dt class="spec value" id="val-return"><a href="#val-return" class="anchor"></a><code><span class="keyword">val</span> return : <span class="type-var">'a</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>return x</code> is a monadic return, that is <code>return x = Some x</code>.</p></dd></dl><dl><dt class="spec value" id="val-(>|=)"><a href="#val-(>|=)" class="anchor"></a><code><span class="keyword">val</span> (>|=) : <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span>(<span class="type-var">'a</span> <span>-></span> <span class="type-var">'b</span>)</span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>o >|= f</code> is the infix version of <a href="index.html#val-map"><code>map</code></a>.</p></dd></dl><dl><dt class="spec value" id="val-flat_map"><a href="#val-flat_map" class="anchor"></a><code><span class="keyword">val</span> flat_map : <span>(<span class="type-var">'a</span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t">t</a></span>)</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>flat_map f o</code> is equivalent to <a href="index.html#val-map"><code>map</code></a> followed by <a href="index.html#val-flatten"><code>flatten</code></a>. Flip version of <code>>>=</code>.</p></dd></dl><dl><dt class="spec value" id="val-bind"><a href="#val-bind" class="anchor"></a><code><span class="keyword">val</span> bind : <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span>(<span class="type-var">'a</span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t">t</a></span>)</span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>bind o f</code> is <code>f v</code> if <code>o</code> is <code>Some v</code>, <code>None</code> otherwise. Monadic bind.</p><dl><dt>since</dt><dd>3.0</dd></dl></dd></dl><dl><dt class="spec value" id="val-(>>=)"><a href="#val-(>>=)" class="anchor"></a><code><span class="keyword">val</span> (>>=) : <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span>(<span class="type-var">'a</span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t">t</a></span>)</span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>o >>= f</code> is the infix version of <a href="index.html#val-bind"><code>bind</code></a>.</p></dd></dl><dl><dt class="spec value" id="val-map2"><a href="#val-map2" class="anchor"></a><code><span class="keyword">val</span> map2 : <span>(<span class="type-var">'a</span> <span>-></span> <span class="type-var">'b</span> <span>-></span> <span class="type-var">'c</span>)</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'c</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>map2 f o1 o2</code> maps <code>'a option</code> and <code>'b option</code> to a <code>'c option</code> using <code>f</code>.</p></dd></dl><dl><dt class="spec value" id="val-iter"><a href="#val-iter" class="anchor"></a><code><span class="keyword">val</span> iter : <span>(<span class="type-var">'a</span> <span>-></span> unit)</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> unit</code></dt><dd><p><code>iter f o</code> applies <code>f</code> to <code>o</code>. Iterate on 0 or 1 element.</p></dd></dl><dl><dt class="spec value" id="val-fold"><a href="#val-fold" class="anchor"></a><code><span class="keyword">val</span> fold : <span>(<span class="type-var">'a</span> <span>-></span> <span class="type-var">'b</span> <span>-></span> <span class="type-var">'a</span>)</span> <span>-></span> <span class="type-var">'a</span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span class="type-var">'a</span></code></dt><dd><p><code>fold f init o</code> is <code>f init x</code> if <code>o</code> is <code>Some x</code>, or <code>init</code> if <code>o</code> is <code>None</code>. Fold on 0 or 1 element.</p></dd></dl><dl><dt class="spec value" id="val-filter"><a href="#val-filter" class="anchor"></a><code><span class="keyword">val</span> filter : <span>(<span class="type-var">'a</span> <span>-></span> bool)</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>filter f o</code> returns <code>Some x</code> if <code>o</code> is <code>Some x</code> and <code>f x</code> is <code>true</code>, or <code>None</code> if <code>f x</code> is <code>false</code> or if <code>o</code> is <code>None</code>. Filter on 0 or 1 element.</p><dl><dt>since</dt><dd>0.5</dd></dl></dd></dl><dl><dt class="spec value" id="val-if_"><a href="#val-if_" class="anchor"></a><code><span class="keyword">val</span> if_ : <span>(<span class="type-var">'a</span> <span>-></span> bool)</span> <span>-></span> <span class="type-var">'a</span> <span>-></span> <span><span class="type-var">'a</span> option</span></code></dt><dd><p><code>if_ f x</code> is <code>Some x</code> if <code>f x</code>, <code>None</code> otherwise.</p><dl><dt>since</dt><dd>0.17</dd></dl></dd></dl><dl><dt class="spec value" id="val-exists"><a href="#val-exists" class="anchor"></a><code><span class="keyword">val</span> exists : <span>(<span class="type-var">'a</span> <span>-></span> bool)</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> bool</code></dt><dd><p><code>exists f o</code> returns <code>true</code> iff there exists an element for which the provided function <code>f</code> evaluates to <code>true</code>.</p><dl><dt>since</dt><dd>0.17</dd></dl></dd></dl><dl><dt class="spec value" id="val-for_all"><a href="#val-for_all" class="anchor"></a><code><span class="keyword">val</span> for_all : <span>(<span class="type-var">'a</span> <span>-></span> bool)</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> bool</code></dt><dd><p><code>for_all f o</code> returns <code>true</code> iff the provided function <code>f</code> evaluates to <code>true</code> for all elements.</p><dl><dt>since</dt><dd>0.17</dd></dl></dd></dl><dl><dt class="spec value" id="val-get_or"><a href="#val-get_or" class="anchor"></a><code><span class="keyword">val</span> get_or : <span>default:<span class="type-var">'a</span></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span class="type-var">'a</span></code></dt><dd><p><code>get_or ~default o</code> extracts the value from <code>o</code>, or returns <code>default</code> if <code>o</code> is <code>None</code>.</p><dl><dt>since</dt><dd>0.18</dd></dl></dd></dl><dl><dt class="spec value" id="val-value"><a href="#val-value" class="anchor"></a><code><span class="keyword">val</span> value : <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span>default:<span class="type-var">'a</span></span> <span>-></span> <span class="type-var">'a</span></code></dt><dd><p><code>value o ~default</code> is similar to the Stdlib's <code>Option.value</code> and to <a href="index.html#val-get_or"><code>get_or</code></a>.</p><dl><dt>since</dt><dd>2.8</dd></dl></dd></dl><dl><dt class="spec value" id="val-get_exn"><a href="#val-get_exn" class="anchor"></a><code><span class="keyword">val</span> get_exn : <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span class="type-var">'a</span></code></dt><dd><p><code>get_exn o</code> returns <code>x</code> if <code>o</code> is <code>Some x</code> or fails if <code>o</code> is <code>None</code>.</p><dl><dt>raises Invalid_argument</dt><dd><p>if the option is <code>None</code>.</p></dd></dl><dl><dt>deprecated</dt><dd><p>use <a href="index.html#val-get_exn_or"><code>get_exn_or</code></a> instead</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-get_exn_or"><a href="#val-get_exn_or" class="anchor"></a><code><span class="keyword">val</span> get_exn_or : string <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span class="type-var">'a</span></code></dt><dd><p><code>get_exn_or msg o</code> returns <code>x</code> if <code>o</code> is <code>Some x</code> or fails with <code>Invalid_argument msg</code> if <code>o</code> is <code>None</code>.</p><dl><dt>raises Invalid_argument</dt><dd><p>if the option is <code>None</code>.</p></dd></dl><dl><dt>since</dt><dd>3.4</dd></dl></dd></dl><dl><dt class="spec value" id="val-get_lazy"><a href="#val-get_lazy" class="anchor"></a><code><span class="keyword">val</span> get_lazy : <span>(unit <span>-></span> <span class="type-var">'a</span>)</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span class="type-var">'a</span></code></dt><dd><p><code>get_lazy default_fn o</code> unwraps <code>o</code>, but if <code>o</code> is <code>None</code> it returns <code>default_fn ()</code> instead.</p><dl><dt>since</dt><dd>0.6.1</dd></dl></dd></dl><dl><dt class="spec value" id="val-sequence_l"><a href="#val-sequence_l" class="anchor"></a><code><span class="keyword">val</span> sequence_l : <span><span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> list</span> <span>-></span> <span><span><span class="type-var">'a</span> list</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>sequence_l [x1; x2; …; xn]</code> returns <code>Some [y1; y2; …; yn]</code> if every <code>xi</code> is <code>Some yi</code>. Otherwise, if the list contains at least one <code>None</code>, the result is <code>None</code>.</p></dd></dl><dl><dt class="spec value" id="val-wrap"><a href="#val-wrap" class="anchor"></a><code><span class="keyword">val</span> wrap : <span>?⁠handler:<span>(exn <span>-></span> bool)</span></span> <span>-></span> <span>(<span class="type-var">'a</span> <span>-></span> <span class="type-var">'b</span>)</span> <span>-></span> <span class="type-var">'a</span> <span>-></span> <span><span class="type-var">'b</span> option</span></code></dt><dd><p><code>wrap ?handler f x</code> calls <code>f x</code> and returns <code>Some y</code> if <code>f x = y</code>. If <code>f x</code> raises any exception, the result is <code>None</code>. This can be useful to wrap functions such as <code>Map.S.find</code>.</p><dl><dt>parameter handler</dt><dd><p>the exception handler, which returns <code>true</code> if the exception is to be caught.</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-wrap2"><a href="#val-wrap2" class="anchor"></a><code><span class="keyword">val</span> wrap2 : <span>?⁠handler:<span>(exn <span>-></span> bool)</span></span> <span>-></span> <span>(<span class="type-var">'a</span> <span>-></span> <span class="type-var">'b</span> <span>-></span> <span class="type-var">'c</span>)</span> <span>-></span> <span class="type-var">'a</span> <span>-></span> <span class="type-var">'b</span> <span>-></span> <span><span class="type-var">'c</span> option</span></code></dt><dd><p><code>wrap2 ?handler f x y</code> is similar to <a href="index.html#val-wrap"><code>wrap</code></a> but for binary functions.</p></dd></dl><section><header><h3 id="applicative"><a href="#applicative" class="anchor"></a>Applicative</h3></header><dl><dt class="spec value" id="val-pure"><a href="#val-pure" class="anchor"></a><code><span class="keyword">val</span> pure : <span class="type-var">'a</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>pure x</code> is an alias to <a href="index.html#val-return"><code>return</code></a>.</p></dd></dl><dl><dt class="spec value" id="val-(<*>)"><a href="#val-(<*>)" class="anchor"></a><code><span class="keyword">val</span> (<*>) : <span><span>(<span class="type-var">'a</span> <span>-></span> <span class="type-var">'b</span>)</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>f <*> (Some x)</code> returns <code>Some (f x)</code> and <code>f <*> None</code> returns <code>None</code>.</p></dd></dl><dl><dt class="spec value" id="val-(<$>)"><a href="#val-(<$>)" class="anchor"></a><code><span class="keyword">val</span> (<$>) : <span>(<span class="type-var">'a</span> <span>-></span> <span class="type-var">'b</span>)</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>f <$> o</code> is like <code>map f o</code>.</p></dd></dl></section><section><header><h3 id="alternatives"><a href="#alternatives" class="anchor"></a>Alternatives</h3></header><dl><dt class="spec value" id="val-or_"><a href="#val-or_" class="anchor"></a><code><span class="keyword">val</span> or_ : <span>else_:<span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>or_ ~else_ o</code> is <code>o</code> if <code>o</code> is <code>Some _</code>, <code>else_</code> if <code>o</code> is <code>None</code>.</p><dl><dt>since</dt><dd>1.2</dd></dl></dd></dl><dl><dt class="spec value" id="val-or_lazy"><a href="#val-or_lazy" class="anchor"></a><code><span class="keyword">val</span> or_lazy : <span>else_:<span>(unit <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span>)</span></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>or_lazy ~else_ o</code> is <code>o</code> if <code>o</code> is <code>Some _</code>, <code>else_ ()</code> if <code>o</code> is <code>None</code>.</p><dl><dt>since</dt><dd>1.2</dd></dl></dd></dl><dl><dt class="spec value" id="val-(<+>)"><a href="#val-(<+>)" class="anchor"></a><code><span class="keyword">val</span> (<+>) : <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>o1 <+> o2</code> is <code>o1</code> if <code>o1</code> is <code>Some _</code>, <code>o2</code> if <code>o1</code> is <code>None</code>.</p></dd></dl><dl><dt class="spec value" id="val-choice"><a href="#val-choice" class="anchor"></a><code><span class="keyword">val</span> choice : <span><span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> list</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>choice lo</code> returns the first non-<code>None</code> element of the list <code>lo</code>, or <code>None</code>.</p></dd></dl><dl><dt class="spec value" id="val-flatten"><a href="#val-flatten" class="anchor"></a><code><span class="keyword">val</span> flatten : <span><span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>flatten oo</code> transforms <code>Some x</code> into <code>x</code>.</p><dl><dt>since</dt><dd>2.2</dd></dl></dd></dl><dl><dt class="spec value" id="val-return_if"><a href="#val-return_if" class="anchor"></a><code><span class="keyword">val</span> return_if : bool <span>-></span> <span class="type-var">'a</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>return_if b x</code> applies <code>Some</code> or <code>None</code> depending on the boolean <code>b</code>. More precisely, <code>return_if false x</code> is <code>None</code>, and <code>return_if true x</code> is <code>Some x</code>.</p><dl><dt>since</dt><dd>2.2</dd></dl></dd></dl></section><section><header><h3 id="infix-operators"><a href="#infix-operators" class="anchor"></a>Infix Operators</h3><dl><dt>since</dt><dd>0.16</dd></dl></header><div class="spec module" id="module-Infix"><a href="#module-Infix" class="anchor"></a><code><span class="keyword">module</span> <a href="Infix/index.html">Infix</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div><div class="spec include"><div class="doc"><p>Let operators on OCaml >= 4.08.0, nothing otherwise</p><dl><dt>since</dt><dd>2.8</dd></dl><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../CCShimsMkLet_/index.html#module-type-S">CCShimsMkLet_.S</a> <span class="keyword">with</span> <span class="keyword">type</span> <span>'a <a href="../CCShimsMkLet_/module-type-S/index.html#type-t_let">t_let</a></span> := <span><span class="type-var">'a</span> option</span></code></span></summary><dl><dt class="spec type" id="type-t_let"><a href="#type-t_let" class="anchor"></a><code><span class="keyword">type</span> <span>'a t_let</span></code></dt></dl><dl><dt class="spec value" id="val-let+"><a href="#val-let+" class="anchor"></a><code><span class="keyword">val</span> let+ : <span><span class="type-var">'a</span> <a href="index.html#type-t_let">t_let</a></span> <span>-></span> <span>(<span class="type-var">'a</span> <span>-></span> <span class="type-var">'b</span>)</span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t_let">t_let</a></span></code></dt><dt class="spec value" id="val-and+"><a href="#val-and+" class="anchor"></a><code><span class="keyword">val</span> and+ : <span><span class="type-var">'a</span> <a href="index.html#type-t_let">t_let</a></span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t_let">t_let</a></span> <span>-></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <a href="index.html#type-t_let">t_let</a></span></code></dt><dt class="spec value" id="val-let*"><a href="#val-let*" class="anchor"></a><code><span class="keyword">val</span> let* : <span><span class="type-var">'a</span> <a href="index.html#type-t_let">t_let</a></span> <span>-></span> <span>(<span class="type-var">'a</span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t_let">t_let</a></span>)</span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t_let">t_let</a></span></code></dt><dt class="spec value" id="val-and*"><a href="#val-and*" class="anchor"></a><code><span class="keyword">val</span> and* : <span><span class="type-var">'a</span> <a href="index.html#type-t_let">t_let</a></span> <span>-></span> <span><span class="type-var">'b</span> <a href="index.html#type-t_let">t_let</a></span> <span>-></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <a href="index.html#type-t_let">t_let</a></span></code></dt></dl></details></div></div></div></section><section><header><h3 id="conversion-and-io"><a href="#conversion-and-io" class="anchor"></a>Conversion and IO</h3></header><dl><dt class="spec value" id="val-to_list"><a href="#val-to_list" class="anchor"></a><code><span class="keyword">val</span> to_list : <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'a</span> list</span></code></dt><dd><p><code>to_list o</code> returns <code>[x]</code> if <code>o</code> is <code>Some x</code> or the empty list <code>[]</code> if <code>o</code> is <code>None</code>.</p></dd></dl><dl><dt class="spec value" id="val-of_list"><a href="#val-of_list" class="anchor"></a><code><span class="keyword">val</span> of_list : <span><span class="type-var">'a</span> list</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>of_list l</code> returns <code>Some x</code> (x being the head of the list l), or <code>None</code> if <code>l</code> is the empty list.</p></dd></dl><dl><dt class="spec value" id="val-to_result"><a href="#val-to_result" class="anchor"></a><code><span class="keyword">val</span> to_result : <span class="type-var">'e</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> Stdlib.result</span></code></dt><dd><p><code>to_result e o</code> returns <code>Ok x</code> if <code>o</code> is <code>Some x</code>, or <code>Error e</code> if <code>o</code> is <code>None</code>.</p><dl><dt>since</dt><dd>1.2</dd></dl></dd></dl><dl><dt class="spec value" id="val-to_result_lazy"><a href="#val-to_result_lazy" class="anchor"></a><code><span class="keyword">val</span> to_result_lazy : <span>(unit <span>-></span> <span class="type-var">'e</span>)</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> Stdlib.result</span></code></dt><dd><p><code>to_result_lazy f o</code> returns <code>Ok x</code> if <code>o</code> is <code>Some x</code> or <code>Error f</code> if <code>o</code> is <code>None</code>.</p><dl><dt>since</dt><dd>1.2</dd></dl></dd></dl><dl><dt class="spec value" id="val-of_result"><a href="#val-of_result" class="anchor"></a><code><span class="keyword">val</span> of_result : <span><span>(<span class="type-var">'a</span>, <span class="type-var">_</span>)</span> Stdlib.result</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>of_result result</code> returns an option from a <code>result</code>.</p><dl><dt>since</dt><dd>1.2</dd></dl></dd></dl><dl><dt class="spec type" id="type-iter"><a href="#type-iter" class="anchor"></a><code><span class="keyword">type</span> <span>'a iter</span></code><code> = <span>(<span class="type-var">'a</span> <span>-></span> unit)</span> <span>-></span> unit</code></dt><dt class="spec type" id="type-gen"><a href="#type-gen" class="anchor"></a><code><span class="keyword">type</span> <span>'a gen</span></code><code> = unit <span>-></span> <span><span class="type-var">'a</span> option</span></code></dt><dt class="spec type" id="type-printer"><a href="#type-printer" class="anchor"></a><code><span class="keyword">type</span> <span>'a printer</span></code><code> = Stdlib.Format.formatter <span>-></span> <span class="type-var">'a</span> <span>-></span> unit</code></dt><dt class="spec type" id="type-random_gen"><a href="#type-random_gen" class="anchor"></a><code><span class="keyword">type</span> <span>'a random_gen</span></code><code> = Stdlib.Random.State.t <span>-></span> <span class="type-var">'a</span></code></dt></dl><dl><dt class="spec value" id="val-random"><a href="#val-random" class="anchor"></a><code><span class="keyword">val</span> random : <span><span class="type-var">'a</span> <a href="index.html#type-random_gen">random_gen</a></span> <span>-></span> <span><span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <a href="index.html#type-random_gen">random_gen</a></span></code></dt><dt class="spec value" id="val-choice_iter"><a href="#val-choice_iter" class="anchor"></a><code><span class="keyword">val</span> choice_iter : <span><span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <a href="index.html#type-iter">iter</a></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>choice_iter iter</code> is similar to <a href="index.html#val-choice"><code>choice</code></a>, but works on <code>iter</code>. It returns the first <code>Some x</code> occurring in <code>iter</code>, or <code>None</code> otherwise.</p><dl><dt>since</dt><dd>3.0</dd></dl></dd></dl><dl><dt class="spec value" id="val-choice_seq"><a href="#val-choice_seq" class="anchor"></a><code><span class="keyword">val</span> choice_seq : <span><span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> Stdlib.Seq.t</span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span></code></dt><dd><p><code>choice_seq seq</code> works on <code>Seq.t</code>. It returns the first <code>Some x</code> occurring in <code>seq</code>, or <code>None</code> otherwise.</p><dl><dt>since</dt><dd>3.0</dd></dl></dd></dl><dl><dt class="spec value" id="val-to_gen"><a href="#val-to_gen" class="anchor"></a><code><span class="keyword">val</span> to_gen : <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-gen">gen</a></span></code></dt><dd><p><code>to_gen o</code> is <code>o</code> as a <code>gen</code>. <code>Some x</code> is the singleton <code>gen</code> containing <code>x</code> and <code>None</code> is the empty <code>gen</code>.</p></dd></dl><dl><dt class="spec value" id="val-to_seq"><a href="#val-to_seq" class="anchor"></a><code><span class="keyword">val</span> to_seq : <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'a</span> Stdlib.Seq.t</span></code></dt><dd><p><code>to_seq o</code> is <code>o</code> as a sequence <code>Seq.t</code>. <code>Some x</code> is the singleton sequence containing <code>x</code> and <code>None</code> is the empty sequence. Same as <span class="xref-unresolved" title="unresolved reference to "Stdlib.Option.to_seq""><span class="xref-unresolved" title="unresolved reference to "Stdlib.Option""><code>Stdlib</code>.Option</span>.to_seq</span> Renamed from <code>to_std_seq</code> since 3.0.</p><dl><dt>since</dt><dd>3.0</dd></dl></dd></dl><dl><dt class="spec value" id="val-to_iter"><a href="#val-to_iter" class="anchor"></a><code><span class="keyword">val</span> to_iter : <span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <span>-></span> <span><span class="type-var">'a</span> <a href="index.html#type-iter">iter</a></span></code></dt><dd><p><code>to_iter o</code> returns an internal iterator, like in the library <code>Iter</code>.</p><dl><dt>since</dt><dd>2.8</dd></dl></dd></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : <span><span class="type-var">'a</span> <a href="index.html#type-printer">printer</a></span> <span>-></span> <span><span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></span> <a href="index.html#type-printer">printer</a></span></code></dt><dd><p><code>pp ppf o</code> pretty-prints option <code>o</code> using <code>ppf</code>.</p></dd></dl></section></div></body></html> |