mirror of
https://github.com/c-cube/nanoev.git
synced 2025-12-06 19:25:39 -05:00
2 lines
13 KiB
HTML
2 lines
13 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Meta_map (trace.Trace_core.Meta_map)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 3.0.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../../index.html">Index</a> » <a href="../../index.html">trace</a> » <a href="../index.html">Trace_core</a> » Meta_map</nav><header class="odoc-preamble"><h1>Module <code><span>Trace_core.Meta_map</span></code></h1></header><div class="odoc-content"><div class="odoc-include"><details open="open"><summary class="spec include"><code><span><span class="keyword">include</span> <span class="keyword">module</span> <span class="keyword">type</span> <span class="keyword">of</span> <span class="keyword">struct</span> <span class="keyword">include</span> <a href="../../../hmap/Hmap/index.html">Hmap</a> <span class="keyword">end</span></span></code></summary><h2 id="keys"><a href="#keys" class="anchor"></a>Keys</h2><div class="odoc-spec"><div class="spec type anchored" id="type-key"><a href="#type-key" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a key</span></span><span> = <span><span class="type-var">'a</span> <a href="../../../hmap/Hmap/index.html#type-key">Hmap.key</a></span></span></code></div><div class="spec-doc"><p>The type for keys whose lookup value is of type <code>'a</code>.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Key"><a href="#module-Key" class="anchor"></a><code><span><span class="keyword">module</span> Key</span><span> = <a href="../../../hmap/Hmap/Key/index.html">Hmap.Key</a></span></code></div><div class="spec-doc"><p>Keys.</p></div></div><h2 id="maps"><a href="#maps" class="anchor"></a>Maps</h2><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = <a href="../../../hmap/Hmap/index.html#type-t">Hmap.t</a></span></code></div><div class="spec-doc"><p>The type for heterogeneous value maps.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-empty"><a href="#val-empty" class="anchor"></a><code><span><span class="keyword">val</span> empty : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>empty</code> is the empty map.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_empty"><a href="#val-is_empty" class="anchor"></a><code><span><span class="keyword">val</span> is_empty : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_empty m</code> is <code>true</code> iff <code>m</code> is empty.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-mem"><a href="#val-mem" class="anchor"></a><code><span><span class="keyword">val</span> mem : <span><span><span class="type-var">'a</span> <a href="#type-key">key</a></span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>mem k m</code> is <code>true</code> iff <code>k</code> is bound in <code>m</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add"><a href="#val-add" class="anchor"></a><code><span><span class="keyword">val</span> add : <span><span><span class="type-var">'a</span> <a href="#type-key">key</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>add k v m</code> is <code>m</code> with <code>k</code> bound to <code>v</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-singleton"><a href="#val-singleton" class="anchor"></a><code><span><span class="keyword">val</span> singleton : <span><span><span class="type-var">'a</span> <a href="#type-key">key</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>singleton k v</code> is <code>add k v empty</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-rem"><a href="#val-rem" class="anchor"></a><code><span><span class="keyword">val</span> rem : <span><span><span class="type-var">'a</span> <a href="#type-key">key</a></span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>rem k m</code> is <code>m</code> with <code>k</code> unbound.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-find"><a href="#val-find" class="anchor"></a><code><span><span class="keyword">val</span> find : <span><span><span class="type-var">'a</span> <a href="#type-key">key</a></span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> option</span></span></code></div><div class="spec-doc"><p><code>find k m</code> is the value of <code>k</code>'s binding in <code>m</code>, if any.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get"><a href="#val-get" class="anchor"></a><code><span><span class="keyword">val</span> get : <span><span><span class="type-var">'a</span> <a href="#type-key">key</a></span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>get k m</code> is the value of <code>k</code>'s binding in <code>m</code>.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <code>Invalid_argument</code> <p>if <code>k</code> is not bound in <code>m</code>.</p></li></ul></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-binding"><a href="#type-binding" class="anchor"></a><code><span><span class="keyword">type</span> binding</span><span> = <a href="../../../hmap/Hmap/index.html#type-binding">Hmap.binding</a></span><span> = </span></code><ol><li id="type-binding.B" class="def variant constructor anchored"><a href="#type-binding.B" class="anchor"></a><code><span>| </span><span><span class="constructor">B</span> : <span><span class="type-var">'a</span> <a href="#type-key">key</a></span> * <span class="type-var">'a</span> <span class="arrow">-></span> <a href="#type-binding">binding</a></span></code></li></ol></div><div class="spec-doc"><p>The type for bindings.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-iter"><a href="#val-iter" class="anchor"></a><code><span><span class="keyword">val</span> iter : <span><span>(<span><a href="#type-binding">binding</a> <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>iter f m</code> applies <code>f</code> to all bindings of <code>m</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-fold"><a href="#val-fold" class="anchor"></a><code><span><span class="keyword">val</span> fold : <span><span>(<span><a href="#type-binding">binding</a> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>fold f m acc</code> folds over the bindings of <code>m</code> with <code>f</code>, starting with <code>acc</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-for_all"><a href="#val-for_all" class="anchor"></a><code><span><span class="keyword">val</span> for_all : <span><span>(<span><a href="#type-binding">binding</a> <span class="arrow">-></span></span> bool)</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>for_all p m</code> is <code>true</code> iff all bindings of <code>m</code> satisfy <code>p</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-exists"><a href="#val-exists" class="anchor"></a><code><span><span class="keyword">val</span> exists : <span><span>(<span><a href="#type-binding">binding</a> <span class="arrow">-></span></span> bool)</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>exists p m</code> is <code>true</code> iff there exists a bindings of <code>m</code> that satisfies <code>p</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-filter"><a href="#val-filter" class="anchor"></a><code><span><span class="keyword">val</span> filter : <span><span>(<span><a href="#type-binding">binding</a> <span class="arrow">-></span></span> bool)</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>filter p m</code> are the bindings of <code>m</code> that satisfy <code>p</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-cardinal"><a href="#val-cardinal" class="anchor"></a><code><span><span class="keyword">val</span> cardinal : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>cardinal m</code> is the number of bindings in <code>m</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-any_binding"><a href="#val-any_binding" class="anchor"></a><code><span><span class="keyword">val</span> any_binding : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-binding">binding</a> option</span></span></code></div><div class="spec-doc"><p><code>any_binding m</code> is a binding of <code>m</code> (if not empty).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get_any_binding"><a href="#val-get_any_binding" class="anchor"></a><code><span><span class="keyword">val</span> get_any_binding : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-binding">binding</a></span></code></div><div class="spec-doc"><p><code>get_any_binding m</code> is a binding of <code>m</code>.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <code>Invalid_argument</code> <p>if <code>m</code> is empty.</p></li></ul></div></div><h2 id="func"><a href="#func" class="anchor"></a>Functorial interface</h2><p>The functorial interface allows to associate more information to the keys. For example a key name or a key value pretty-printer.</p><div class="odoc-spec"><div class="spec module-type anchored" id="module-type-KEY_INFO"><a href="#module-type-KEY_INFO" class="anchor"></a><code><span><span class="keyword">module</span> <span class="keyword">type</span> KEY_INFO</span><span> = <a href="../../../hmap/Hmap/module-type-KEY_INFO/index.html">Hmap.KEY_INFO</a></span></code></div><div class="spec-doc"><p>The type for key information.</p></div></div><div class="odoc-spec"><div class="spec module-type anchored" id="module-type-S"><a href="#module-type-S" class="anchor"></a><code><span><span class="keyword">module</span> <span class="keyword">type</span> S</span><span> = <a href="../../../hmap/Hmap/module-type-S/index.html">Hmap.S</a></span></code></div><div class="spec-doc"><p>Output signature of the functor <a href="../../../hmap/Hmap/Make/index.html"><code>Make</code></a></p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Make"><a href="#module-Make" class="anchor"></a><code><span><span class="keyword">module</span> Make</span><span> = <a href="../../../hmap/Hmap/Make/index.html">Hmap.Make</a></span></code></div><div class="spec-doc"><p>Functor for heterogeneous maps whose keys hold information of type <code>Key_info.t</code></p></div></div></details></div><div class="odoc-spec"><div class="spec value anchored" id="val-find_exn"><a href="#val-find_exn" class="anchor"></a><code><span><span class="keyword">val</span> find_exn : <span><span><span class="type-var">'a</span> <a href="#type-key">key</a></span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div></div></div></body></html>
|