ocaml-containers/2.2/containers/CCListLabels/index.html
2018-05-10 23:14:25 -05:00

61 lines
No EOL
101 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCListLabels (containers.CCListLabels)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">containers</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">CCListLabels</span></h1></header><h2>Complements to list</h2><div class="spec type" id="type-sequence"><a href="#type-sequence" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a sequence</code><code><span class="keyword"> = </span>(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> unit</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-gen"><a href="#type-gen" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a gen</code><code><span class="keyword"> = </span>unit <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-klist"><a href="#type-klist" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a klist</code><code><span class="keyword"> = </span>unit <span class="keyword">&#8209;&gt;</span> [ `Nil | `Cons of <span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'a</span> <a href="index.html#type-klist">klist</a> ]</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-printer"><a href="#type-printer" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a printer</code><code><span class="keyword"> = </span>Format.formatter <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-random_gen"><a href="#type-random_gen" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a random_gen</code><code><span class="keyword"> = </span>Random.State.t <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code><code></code></div><div class="doc"></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">module type of </span>ListLabels</code></span></summary><div class="spec val" id="val-length"><a href="#val-length" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>length : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div><div class="spec val" id="val-hd"><a href="#val-hd" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>hd : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"></div></div><div class="spec val" id="val-compare_lengths"><a href="#val-compare_lengths" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_lengths : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div><div class="spec val" id="val-compare_length_with"><a href="#val-compare_length_with" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_length_with : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> len:int <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div><div class="spec val" id="val-cons"><a href="#val-cons" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>cons : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-tl"><a href="#val-tl" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>tl : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-nth"><a href="#val-nth" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>nth : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"></div></div><div class="spec val" id="val-nth_opt"><a href="#val-nth_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>nth_opt : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"></div></div><div class="spec val" id="val-rev"><a href="#val-rev" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>rev : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-init"><a href="#val-init" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>init : len:int <span class="keyword">&#8209;&gt;</span> f:(int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-append"><a href="#val-append" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>append : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-rev_append"><a href="#val-rev_append" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>rev_append : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-concat"><a href="#val-concat" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>concat : <span class="type-var">'a</span> list list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-flatten"><a href="#val-flatten" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>flatten : <span class="type-var">'a</span> list list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-iter"><a href="#val-iter" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>iter : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-iteri"><a href="#val-iteri" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>iteri : f:(int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-map"><a href="#val-map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>map : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-mapi"><a href="#val-mapi" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mapi : f:(int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-rev_map"><a href="#val-rev_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>rev_map : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-fold_left"><a href="#val-fold_left" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_left : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"></div></div><div class="spec val" id="val-fold_right"><a href="#val-fold_right" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_right : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span></code></div><div class="doc"></div></div><div class="spec val" id="val-iter2"><a href="#val-iter2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>iter2 : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-map2"><a href="#val-map2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>map2 : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-rev_map2"><a href="#val-rev_map2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>rev_map2 : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-fold_left2"><a href="#val-fold_left2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_left2 : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"></div></div><div class="spec val" id="val-fold_right2"><a href="#val-fold_right2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_right2 : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'c</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span></code></div><div class="doc"></div></div><div class="spec val" id="val-for_all"><a href="#val-for_all" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>for_all : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-exists"><a href="#val-exists" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>exists : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-for_all2"><a href="#val-for_all2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>for_all2 : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-exists2"><a href="#val-exists2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>exists2 : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-mem"><a href="#val-mem" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mem : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> set:<span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-memq"><a href="#val-memq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>memq : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> set:<span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-find"><a href="#val-find" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"></div></div><div class="spec val" id="val-find_opt"><a href="#val-find_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_opt : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"></div></div><div class="spec val" id="val-filter"><a href="#val-filter" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filter : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-find_all"><a href="#val-find_all" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_all : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-partition"><a href="#val-partition" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>partition : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list<span class="keyword"> * </span><span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-assoc"><a href="#val-assoc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assoc : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span></code></div><div class="doc"></div></div><div class="spec val" id="val-assoc_opt"><a href="#val-assoc_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assoc_opt : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> option</code></div><div class="doc"></div></div><div class="spec val" id="val-assq"><a href="#val-assq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assq : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span></code></div><div class="doc"></div></div><div class="spec val" id="val-assq_opt"><a href="#val-assq_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assq_opt : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> option</code></div><div class="doc"></div></div><div class="spec val" id="val-mem_assoc"><a href="#val-mem_assoc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mem_assoc : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> map:(<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-mem_assq"><a href="#val-mem_assq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mem_assq : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> map:(<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-remove_assoc"><a href="#val-remove_assoc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove_assoc : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list</code></div><div class="doc"></div></div><div class="spec val" id="val-remove_assq"><a href="#val-remove_assq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove_assq : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list</code></div><div class="doc"></div></div><div class="spec val" id="val-split"><a href="#val-split" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>split : (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list<span class="keyword"> * </span><span class="type-var">'b</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-combine"><a href="#val-combine" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>combine : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list</code></div><div class="doc"></div></div><div class="spec val" id="val-sort"><a href="#val-sort" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sort : cmp:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-stable_sort"><a href="#val-stable_sort" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>stable_sort : cmp:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-fast_sort"><a href="#val-fast_sort" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fast_sort : cmp:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-sort_uniq"><a href="#val-sort_uniq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sort_uniq : cmp:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-merge"><a href="#val-merge" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>merge : cmp:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div></details></div><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a t</code><code><span class="keyword"> = </span><span class="type-var">'a</span> list</code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-empty"><a href="#val-empty" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>empty : <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">empty</code> is <code class="code">[]</code>.</p></div></div><div class="spec val" id="val-is_empty"><a href="#val-is_empty" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_empty : <span class="type-var">_</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p><code class="code">is_empty l</code> returns <code class="code">true</code> iff <code class="code">l = []</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-map"><a href="#val-map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>map : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Safe version of <span class="xref-unresolved" title="unresolved reference to &quot;List.map&quot;">List.map</span>.</p></div></div><div class="spec val" id="val-(&gt;|=)"><a href="#val-(&gt;|=)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&gt;|=) : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Infix version of <code class="code">map</code> with reversed arguments.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.5</li></ul></div></div><div class="spec val" id="val-cons"><a href="#val-cons" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>cons : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">cons x l</code> is <code class="code">x::l</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.12</li></ul></div></div><div class="spec val" id="val-append"><a href="#val-append" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>append : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Safe version of <span class="xref-unresolved" title="unresolved reference to &quot;List.append&quot;">List.append</span>.
Concatenate two lists.</p></div></div><div class="spec val" id="val-cons_maybe"><a href="#val-cons_maybe" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>cons_maybe : <span class="type-var">'a</span> option <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">cons_maybe (Some x) l</code> is <code class="code">x :: l</code>.
<code class="code">cons_maybe None l</code> is <code class="code">l</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.13</li></ul></div></div><div class="spec val" id="val-(@)"><a href="#val-(@)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(@) : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Like <code class="code">append</code>.
Concatenate two lists.</p></div></div><div class="spec val" id="val-filter"><a href="#val-filter" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filter : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Safe version of <span class="xref-unresolved" title="unresolved reference to &quot;List.filter&quot;">List.filter</span>.
<code class="code">filter p l</code> returns all the elements of the list <code class="code">l</code>
that satisfy the predicate <code class="code">p</code>. The order of the elements
in the input list is preserved.</p></div></div><div class="spec val" id="val-fold_right"><a href="#val-fold_right" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_right : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span></code></div><div class="doc"><p>Safe version of <code class="code">fold_right</code>.
<code class="code">fold_right f [a1; ...; an] b</code> is
<code class="code">f a1 (f a2 (... (f an b) ...))</code>. Not tail-recursive.</p></div></div><div class="spec val" id="val-fold_while"><a href="#val-fold_while" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_while : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span><span class="keyword"> * </span>[ `Stop | `Continue ]) <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Fold until a stop condition via <code class="code">('a, `Stop)</code> is
indicated by the accumulator.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.8</li></ul></div></div><div class="spec val" id="val-fold_map"><a href="#val-fold_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_map : f:(<span class="type-var">'acc</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'acc</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'b</span> list</code></div><div class="doc"><p><code class="code">fold_map ~f ~init l</code> is a <code class="code">fold_left</code>-like function, but it also maps the
list to another list.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.14</li></ul></div></div><div class="spec val" id="val-scan_left"><a href="#val-scan_left" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>scan_left : f:(<span class="type-var">'acc</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'acc</span>) <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'acc</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'acc</span> list</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-fold_map2"><a href="#val-fold_map2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_map2 : f:(<span class="type-var">'acc</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'c</span>) <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'acc</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'c</span> list</code></div><div class="doc"><p><code class="code">fold_map2</code> is to <code class="code">fold_map</code> what <code class="code">List.map2</code> is to <code class="code">List.map</code>.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Invalid_argument</span>: if the lists do not have the same length.</li><li><span class="at-tag since">Since</span>: 0.16</li></ul></div></div><div class="spec val" id="val-fold_filter_map"><a href="#val-fold_filter_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_filter_map : f:(<span class="type-var">'acc</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'b</span> option) <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'acc</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'b</span> list</code></div><div class="doc"><p><code class="code">fold_filter_map ~f ~init l</code> is a <code class="code">fold_left</code>-like function, but also
generates a list of output in a way similar to <a href="index.html#val-filter_map">filter_map</a>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.17</li></ul></div></div><div class="spec val" id="val-fold_flat_map"><a href="#val-fold_flat_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_flat_map : f:(<span class="type-var">'acc</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'b</span> list) <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'acc</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'b</span> list</code></div><div class="doc"><p><code class="code">fold_flat_map f acc l</code> is a <code class="code">fold_left</code>-like function, but it also maps the
list to a list of lists that is then <code class="code">flatten</code>'d.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.14</li></ul></div></div><div class="spec val" id="val-count"><a href="#val-count" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>count : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-init"><a href="#val-init" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>init : int <span class="keyword">&#8209;&gt;</span> f:(int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">init len ~f</code> is <code class="code">f 0; f 1; ...; f (len-1)</code>.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Invalid_argument</span>: if len &lt; 0.</li><li><span class="at-tag since">Since</span>: 0.6</li></ul></div></div><div class="spec val" id="val-combine"><a href="#val-combine" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>combine : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-combine_gen"><a href="#val-combine_gen" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>combine_gen : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-gen">gen</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-split"><a href="#val-split" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>split : (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a><span class="keyword"> * </span><span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-compare"><a href="#val-compare" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div><div class="spec val" id="val-compare_lengths"><a href="#val-compare_lengths" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_lengths : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-compare_length_with"><a href="#val-compare_length_with" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_length_with : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-equal"><a href="#val-equal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-flat_map"><a href="#val-flat_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>flat_map : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Map and flatten at the same time (safe). Evaluation order is not guaranteed.</p></div></div><div class="spec val" id="val-flatten"><a href="#val-flatten" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>flatten : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Safe flatten. Concatenate a list of lists.</p></div></div><div class="spec val" id="val-product"><a href="#val-product" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>product : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Cartesian product of the two lists, with the given combinator.</p></div></div><div class="spec val" id="val-fold_product"><a href="#val-fold_product" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_product : f:(<span class="type-var">'c</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span>) <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'c</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span></code></div><div class="doc"><p>Fold on the cartesian product.</p></div></div><div class="spec val" id="val-cartesian_product"><a href="#val-cartesian_product" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>cartesian_product : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-t">t</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-map_product_l"><a href="#val-map_product_l" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>map_product_l : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list list</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-diagonal"><a href="#val-diagonal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>diagonal : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'a</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>All pairs of distinct positions of the list. <code class="code">list_diagonal l</code> will
return the list of <code class="code">List.nth i l, List.nth j l</code> if <code class="code">i &lt; j</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-partition_map"><a href="#val-partition_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>partition_map : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> [&lt; `Left of <span class="type-var">'b</span> | `Right of <span class="type-var">'c</span> | `Drop ]) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> list<span class="keyword"> * </span><span class="type-var">'c</span> list</code></div><div class="doc"><p><code class="code">partition_map ~f l</code> maps <code class="code">f</code> on <code class="code">l</code> and gather results in lists:
</p><ul><li>if <code class="code">f x = `Left y</code>, adds <code class="code">y</code> to the first list.</li><li>if <code class="code">f x = `Right z</code>, adds <code class="code">z</code> to the second list.</li><li>if <code class="code">f x = `Drop</code>, ignores <code class="code">x</code>.</li></ul><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-sublists_of_len"><a href="#val-sublists_of_len" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sublists_of_len : ?&#8288;last:(<span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list option) <span class="keyword">&#8209;&gt;</span> ?&#8288;offset:int <span class="keyword">&#8209;&gt;</span> len:int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list list</code></div><div class="doc"><p><code class="code">sublists_of_len n l</code> returns sub-lists of <code class="code">l</code> that have length <code class="code">n</code>.
By default, these sub-lists are non overlapping:
<code class="code">sublists_of_len 2 [1;2;3;4;5;6]</code> returns <code class="code">[1;2]; [3;4]; [5;6]</code>.</p><p>See <a href="../CCList/index.html#val-sublists_of_len">CCList.sublists_of_len</a> for more details.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 1.5</li></ul></div></div><div class="spec val" id="val-intersperse"><a href="#val-intersperse" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>intersperse : x:<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"><p>Insert the first argument between every element of the list.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-interleave"><a href="#val-interleave" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>interleave : <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"><p><code class="code">interleave [x1…xn] [y1…ym]</code> is <code class="code">x1,y1,x2,y2,…</code> and finishes with
the suffix of the longest list.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-pure"><a href="#val-pure" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pure : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">pure</code> is <code class="code">return</code>.</p></div></div><div class="spec val" id="val-(&lt;*&gt;)"><a href="#val-(&lt;*&gt;)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&lt;*&gt;) : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">funs &lt;*&gt; l</code> is <code class="code">product fun f x -&gt; f x) funs l</code>.</p></div></div><div class="spec val" id="val-(&lt;$&gt;)"><a href="#val-(&lt;$&gt;)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&lt;$&gt;) : (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">(&lt;$&gt;)</code> is <code class="code">map</code>.</p></div></div><div class="spec val" id="val-return"><a href="#val-return" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>return : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">return x</code> is <code class="code">x</code>.</p></div></div><div class="spec val" id="val-(&gt;&gt;=)"><a href="#val-(&gt;&gt;=)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(&gt;&gt;=) : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">l &gt;&gt;= f</code> is <code class="code">flat_map f l</code>.</p></div></div><div class="spec val" id="val-take"><a href="#val-take" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>take : int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Take the <code class="code">n</code> first elements, drop the rest.</p></div></div><div class="spec val" id="val-drop"><a href="#val-drop" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>drop : int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Drop the <code class="code">n</code> first elements, keep the rest.</p></div></div><div class="spec val" id="val-hd_tl"><a href="#val-hd_tl" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>hd_tl : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">hd_tl (x :: l)</code> returns <code class="code">hd, l</code>.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Failure</span>: if the list is empty.</li><li><span class="at-tag since">Since</span>: 0.16</li></ul></div></div><div class="spec val" id="val-take_drop"><a href="#val-take_drop" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>take_drop : int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a><span class="keyword"> * </span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">take_drop n l</code> returns <code class="code">l1, l2</code> such that <code class="code">l1 @ l2 = l</code> and
<code class="code">length l1 = min (length l) n</code>.</p></div></div><div class="spec val" id="val-take_while"><a href="#val-take_while" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>take_while : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">take_while ~f l</code> returns the longest prefix of <code class="code">l</code> for which <code class="code">f</code> is <code class="code">true</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.13</li></ul></div></div><div class="spec val" id="val-drop_while"><a href="#val-drop_while" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>drop_while : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">drop_while ~f l</code> drops the longest prefix of <code class="code">l</code> for which <code class="code">f</code> is <code class="code">true</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.13</li></ul></div></div><div class="spec val" id="val-take_drop_while"><a href="#val-take_drop_while" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>take_drop_while : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a><span class="keyword"> * </span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-last"><a href="#val-last" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>last : int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">last n l</code> takes the last <code class="code">n</code> elements of <code class="code">l</code> (or less if
<code class="code">l</code> doesn't have that many elements).</p></div></div><div class="spec val" id="val-head_opt"><a href="#val-head_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>head_opt : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><p>First element.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.20</li></ul></div></div><div class="spec val" id="val-tail_opt"><a href="#val-tail_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>tail_opt : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> option</code></div><div class="doc"><p>Return the given list without its first element.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.0</li></ul></div></div><div class="spec val" id="val-last_opt"><a href="#val-last_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>last_opt : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><p>Last element.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.20</li></ul></div></div><div class="spec val" id="val-find_pred"><a href="#val-find_pred" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_pred : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><p><code class="code">find_pred p l</code> finds the first element of <code class="code">l</code> that satisfies <code class="code">p</code>,
or returns <code class="code">None</code> if no element satisfies <code class="code">p</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-find_opt"><a href="#val-find_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_opt : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-find_pred_exn"><a href="#val-find_pred_exn" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_pred_exn : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Unsafe version of <a href="index.html#val-find_pred">find_pred</a>.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Not_found</span>: if no such element is found.</li><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-find_map"><a href="#val-find_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_map : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> option) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> option</code></div><div class="doc"><p><code class="code">find_map ~f l</code> traverses <code class="code">l</code>, applying <code class="code">f</code> to each element. If for
some element <code class="code">x</code>, <code class="code">f x = Some y</code>, then <code class="code">Some y</code> is returned. Otherwise
the call returns <code class="code">None</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-find_mapi"><a href="#val-find_mapi" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_mapi : f:(int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> option) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> option</code></div><div class="doc"><p>Like <a href="index.html#val-find_map">find_map</a>, but also pass the index to the predicate function.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-find_idx"><a href="#val-find_idx" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_idx : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (int<span class="keyword"> * </span><span class="type-var">'a</span>) option</code></div><div class="doc"><p><code class="code">find_idx p x</code> returns <code class="code">Some (i,x)</code> where <code class="code">x</code> is the <code class="code">i</code>-th element of <code class="code">l</code>,
and <code class="code">p x</code> holds. Otherwise returns <code class="code">None</code>.</p></div></div><div class="spec val" id="val-remove"><a href="#val-remove" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> key:<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">remove ~key l</code> removes every instance of <code class="code">key</code> from <code class="code">l</code>. Tail-recursive.</p><ul class="at-tag"><li><span class="at-tag parameter">Parameter</span> <span class="module-path">eq</span>: equality function.</li><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-filter_map"><a href="#val-filter_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filter_map : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> option) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">filter_map ~f l</code> is the sublist of <code class="code">l</code> containing only elements for which
<code class="code">f</code> returns <code class="code">Some e</code>.
Map and remove elements at the same time.</p></div></div><div class="spec val" id="val-keep_some"><a href="#val-keep_some" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>keep_some : <span class="type-var">'a</span> option <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-keep_ok"><a href="#val-keep_ok" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>keep_ok : (<span class="type-var">'a</span>, <span class="type-var">_</span>) Result.result <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-all_some"><a href="#val-all_some" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>all_some : <span class="type-var">'a</span> option <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> option</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-all_ok"><a href="#val-all_ok" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>all_ok : (<span class="type-var">'a</span>, <span class="type-var">'err</span>) Result.result <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span> <a href="index.html#type-t">t</a>, <span class="type-var">'err</span>) Result.result</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-sorted_merge"><a href="#val-sorted_merge" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sorted_merge : cmp:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"><p>Merges elements from both sorted list.</p></div></div><div class="spec val" id="val-sort_uniq"><a href="#val-sort_uniq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sort_uniq : cmp:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"><p>Sort the list and remove duplicate elements.</p></div></div><div class="spec val" id="val-sorted_merge_uniq"><a href="#val-sorted_merge_uniq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sorted_merge_uniq : cmp:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"><p><code class="code">sorted_merge_uniq l1 l2</code> merges the sorted lists <code class="code">l1</code> and <code class="code">l2</code> and
removes duplicates.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.10</li></ul></div></div><div class="spec val" id="val-is_sorted"><a href="#val-is_sorted" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_sorted : cmp:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p><code class="code">is_sorted l</code> returns <code class="code">true</code> iff <code class="code">l</code> is sorted (according to given order).</p><ul class="at-tag"><li><span class="at-tag parameter">Parameter</span> <span class="module-path">cmp</span>: the comparison function (default <code class="code">Pervasives.compare</code>).</li><li><span class="at-tag since">Since</span>: 0.17</li></ul></div></div><div class="spec val" id="val-sorted_insert"><a href="#val-sorted_insert" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sorted_insert : cmp:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> ?&#8288;uniq:bool <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"><p><code class="code">sorted_insert x l</code> inserts <code class="code">x</code> into <code class="code">l</code> such that, if <code class="code">l</code> was sorted,
then <code class="code">sorted_insert x l</code> is sorted too.</p><ul class="at-tag"><li><span class="at-tag parameter">Parameter</span> <span class="module-path">uniq</span>: if true and <code class="code">x</code> is already in sorted position in <code class="code">l</code>, then
<code class="code">x</code> is not duplicated. Default <code class="code">false</code> (<code class="code">x</code> will be inserted in any case).</li><li><span class="at-tag since">Since</span>: 0.17</li></ul></div></div><div class="spec val" id="val-uniq_succ"><a href="#val-uniq_succ" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>uniq_succ : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list</code></div><div class="doc"><p><code class="code">uniq_succ l</code> removes duplicate elements that occur one next to the other.
Examples:
<code class="code">uniq_succ [1;2;1] = [1;2;1]</code>.
<code class="code">uniq_succ [1;1;2] = [1;2]</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.10</li></ul></div></div><div class="spec val" id="val-group_succ"><a href="#val-group_succ" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>group_succ : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list list</code></div><div class="doc"><p><code class="code">group_succ ~eq l</code> groups together consecutive elements that are equal
according to <code class="code">eq</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><h3>Indices</h3><div class="spec val" id="val-mapi"><a href="#val-mapi" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mapi : f:(int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Like <a href="index.html#val-map">map</a>, but the function is applied to the index of
the element as first argument (counting from 0), and the element
itself as second argument.</p></div></div><div class="spec val" id="val-iteri"><a href="#val-iteri" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>iteri : f:(int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Like <a href="index.html#val-iter">iter</a>, but the function is applied to the index of
the element as first argument (counting from 0), and the element
itself as second argument.</p></div></div><div class="spec val" id="val-iteri2"><a href="#val-iteri2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>iteri2 : f:(int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-foldi"><a href="#val-foldi" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>foldi : f:(<span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span>) <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span></code></div><div class="doc"><p>Like <code class="code">fold</code> but it also passes in the index of each element to the folded function. Tail-recursive.</p></div></div><div class="spec val" id="val-foldi2"><a href="#val-foldi2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>foldi2 : f:(<span class="type-var">'c</span> <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span>) <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'c</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'c</span></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-get_at_idx"><a href="#val-get_at_idx" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_at_idx : int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><p>Get by index in the list.
If the index is negative, it will get element starting from the end
of the list.</p></div></div><div class="spec val" id="val-nth_opt"><a href="#val-nth_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>nth_opt : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-get_at_idx_exn"><a href="#val-get_at_idx_exn" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_at_idx_exn : int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Get the i-th element, or</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Not_found</span>: if the index is invalid.
If the index is negative, it will get element starting from the end
of the list.</li></ul></div></div><div class="spec val" id="val-set_at_idx"><a href="#val-set_at_idx" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>set_at_idx : int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Set i-th element (removes the old one), or does nothing if
index is too high.
If the index is negative, it will set element starting from the end
of the list.</p></div></div><div class="spec val" id="val-insert_at_idx"><a href="#val-insert_at_idx" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>insert_at_idx : int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Insert at i-th position, between the two existing elements. If the
index is too high, append at the end of the list.
If the index is negative, it will insert element starting from the end
of the list.</p></div></div><div class="spec val" id="val-remove_at_idx"><a href="#val-remove_at_idx" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove_at_idx : int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Remove element at given index. Does nothing if the index is
too high.
If the index is negative, it will remove element starting from the end
of the list.</p></div></div><h3>Set Operators</h3><p>Those operations maintain the invariant that the list does not
contain duplicates (if it already satisfies it).</p><div class="spec val" id="val-add_nodup"><a href="#val-add_nodup" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_nodup : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">add_nodup x set</code> adds <code class="code">x</code> to <code class="code">set</code> if it was not already present. Linear time.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-remove_one"><a href="#val-remove_one" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove_one : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">remove_one x set</code> removes one occurrence of <code class="code">x</code> from <code class="code">set</code>. Linear time.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-mem"><a href="#val-mem" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mem : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Membership to the list. Linear time.</p></div></div><div class="spec val" id="val-subset"><a href="#val-subset" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>subset : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Test for inclusion.</p></div></div><div class="spec val" id="val-uniq"><a href="#val-uniq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>uniq : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Remove duplicates w.r.t the equality predicate.
Complexity is quadratic in the length of the list, but the order
of elements is preserved. If you wish for a faster de-duplication
but do not care about the order, use <a href="index.html#val-sort_uniq">sort_uniq</a>.</p></div></div><div class="spec val" id="val-union"><a href="#val-union" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>union : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>List union. Complexity is product of length of inputs.</p></div></div><div class="spec val" id="val-inter"><a href="#val-inter" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>inter : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>List intersection. Complexity is product of length of inputs.</p></div></div><h3>Other Constructors</h3><div class="spec val" id="val-range_by"><a href="#val-range_by" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>range_by : step:int <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> int <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">range_by ~step i j</code> iterates on integers from <code class="code">i</code> to <code class="code">j</code> included,
where the difference between successive elements is <code class="code">step</code>.
use a negative <code class="code">step</code> for a decreasing list.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Invalid_argument</span>: if <code class="code">step=0</code>.</li><li><span class="at-tag since">Since</span>: 0.18</li></ul></div></div><div class="spec val" id="val-range"><a href="#val-range" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>range : int <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> int <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">range i j</code> iterates on integers from <code class="code">i</code> to <code class="code">j</code> included. It works
both for decreasing and increasing ranges.</p></div></div><div class="spec val" id="val-range'"><a href="#val-range'" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>range' : int <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> int <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Like <a href="index.html#val-range">range</a> but the second bound is excluded.
For instance <code class="code">range' 0 5 = [0;1;2;3;4]</code>.</p></div></div><div class="spec val" id="val-(--)"><a href="#val-(--)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(--) : int <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> int <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Infix alias for <code class="code">range</code>.</p></div></div><div class="spec val" id="val-(--^)"><a href="#val-(--^)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(--^) : int <span class="keyword">&#8209;&gt;</span> int <span class="keyword">&#8209;&gt;</span> int <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Infix alias for <code class="code">range'</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.17</li></ul></div></div><div class="spec val" id="val-replicate"><a href="#val-replicate" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>replicate : int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Replicate the given element <code class="code">n</code> times.</p></div></div><div class="spec val" id="val-repeat"><a href="#val-repeat" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>repeat : int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Concatenate the list with itself <code class="code">n</code> times.</p></div></div><h3>Association Lists</h3><div class="spec module" id="module-Assoc"><a href="#module-Assoc" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Assoc/index.html">Assoc</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec val" id="val-assoc"><a href="#val-assoc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assoc : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span></code></div><div class="doc"><p>Like <code class="code">Assoc.get_exn</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.0</li></ul></div></div><div class="spec val" id="val-assoc_opt"><a href="#val-assoc_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assoc_opt : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> option</code></div><div class="doc"><p>Like <code class="code">Assoc.get</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.0</li></ul></div></div><div class="spec val" id="val-assq_opt"><a href="#val-assq_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assq_opt : <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'b</span> option</code></div><div class="doc"><p>Safe version of <a href="index.html#val-assq">assq</a>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.0</li></ul></div></div><div class="spec val" id="val-mem_assoc"><a href="#val-mem_assoc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mem_assoc : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Like <code class="code">Assoc.mem</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.0</li></ul></div></div><div class="spec val" id="val-remove_assoc"><a href="#val-remove_assoc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove_assoc : eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Like <code class="code">Assoc.remove</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.0</li></ul></div></div><h3>References on Lists</h3><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.3.3</li></ul><div class="spec module" id="module-Ref"><a href="#module-Ref" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Ref/index.html">Ref</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec module-type" id="module-type-MONAD"><a href="#module-type-MONAD" class="anchor"></a><div class="def module-type"><code><span class="keyword">module type </span><a href="module-type-MONAD/index.html">MONAD</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"><h3>Monadic Operations</h3></div></div><div class="spec module" id="module-Traverse"><a href="#module-Traverse" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Traverse/index.html">Traverse</a> : <span class="keyword">functor</span> (<a href="Traverse/argument-1-M/index.html">M</a> : <a href="index.html#module-type-MONAD">MONAD</a>) -&gt; <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><h3>Conversions</h3><div class="spec val" id="val-random"><a href="#val-random" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>random : <span class="type-var">'a</span> <a href="index.html#type-random_gen">random_gen</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-random_gen">random_gen</a></code></div><div class="doc"></div></div><div class="spec val" id="val-random_non_empty"><a href="#val-random_non_empty" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>random_non_empty : <span class="type-var">'a</span> <a href="index.html#type-random_gen">random_gen</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-random_gen">random_gen</a></code></div><div class="doc"></div></div><div class="spec val" id="val-random_len"><a href="#val-random_len" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>random_len : int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-random_gen">random_gen</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-random_gen">random_gen</a></code></div><div class="doc"></div></div><div class="spec val" id="val-random_choose"><a href="#val-random_choose" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>random_choose : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-random_gen">random_gen</a></code></div><div class="doc"><p>Randomly choose an element in the list.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Not_found</span>: if the list is empty.</li></ul></div></div><div class="spec val" id="val-random_sequence"><a href="#val-random_sequence" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>random_sequence : <span class="type-var">'a</span> <a href="index.html#type-random_gen">random_gen</a> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-random_gen">random_gen</a></code></div><div class="doc"></div></div><div class="spec val" id="val-to_seq"><a href="#val-to_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_seq : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-sequence">sequence</a></code></div><div class="doc"><p>Return a <code class="code">sequence</code> of the elements of the list.</p></div></div><div class="spec val" id="val-of_seq"><a href="#val-of_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_seq : <span class="type-var">'a</span> <a href="index.html#type-sequence">sequence</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Build a list from a given <code class="code">sequence</code>.</p></div></div><div class="spec val" id="val-to_gen"><a href="#val-to_gen" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_gen : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-gen">gen</a></code></div><div class="doc"><p>Return a <code class="code">gen</code> of the elements of the list.</p></div></div><div class="spec val" id="val-of_gen"><a href="#val-of_gen" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_gen : <span class="type-var">'a</span> <a href="index.html#type-gen">gen</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Build a list from a given <code class="code">gen</code>.</p></div></div><div class="spec val" id="val-to_klist"><a href="#val-to_klist" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_klist : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-klist">klist</a></code></div><div class="doc"><p>Return a <code class="code">klist</code> of the elements of the list.</p></div></div><div class="spec val" id="val-of_klist"><a href="#val-of_klist" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_klist : <span class="type-var">'a</span> <a href="index.html#type-klist">klist</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Build a list from a given <code class="code">klist</code>.</p></div></div><h3>Infix Operators</h3><p>
It is convenient to <span class="xref-unresolved" title="unresolved reference to &quot;open CCList.Infix&quot;">open CCList.Infix</span> to access the infix operators
without cluttering the scope too much.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.16</li></ul><div class="spec module" id="module-Infix"><a href="#module-Infix" class="anchor"></a><div class="def module"><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 class="doc"></div></div><h3>IO</h3><div class="spec val" id="val-pp"><a href="#val-pp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp : ?&#8288;start:string <span class="keyword">&#8209;&gt;</span> ?&#8288;stop:string <span class="keyword">&#8209;&gt;</span> ?&#8288;sep:string <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-printer">printer</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-printer">printer</a></code></div><div class="doc"><p>Print the contents of a list.</p></div></div></body></html>