<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link rel="previous" href="CamomileLibrary.Type.USet.html"> <link rel="next" href="CamomileLibrary.Type.UCharTbl.html"> <link rel="Up" href="CamomileLibrary.Type.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of class methods" rel=Appendix href="index_methods.html"> <link title="Index of classes" rel=Appendix href="index_classes.html"> <link title="Index of class types" rel=Appendix href="index_class_types.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="CamomileLibrary" rel="Chapter" href="CamomileLibrary.html"> <link title="CamomileLibraryDefault" rel="Chapter" href="CamomileLibraryDefault.html"> <link title="CamomileLibraryDyn" rel="Chapter" href="CamomileLibraryDyn.html"><title>CamomileLibrary.Type.UMap</title> </head> <body> <div class="navbar"><a class="pre" href="CamomileLibrary.Type.USet.html" title="CamomileLibrary.Type.USet">Previous</a> <a class="up" href="CamomileLibrary.Type.html" title="CamomileLibrary.Type">Up</a> <a class="post" href="CamomileLibrary.Type.UCharTbl.html" title="CamomileLibrary.Type.UCharTbl">Next</a> </div> <h1>Module <a href="type_CamomileLibrary.Type.UMap.html">CamomileLibrary.Type.UMap</a></h1> <pre><span class="keyword">module</span> UMap: <code class="code">sig</code> <a href="CamomileLibrary.Type.UMap.html">..</a> <code class="code">end</code></pre><hr width="100%"> <pre><span id="TYPEt"><span class="keyword">type</span> <code class="type">'a</code> t</span> </pre> <div class="info "> Maps over Unicode characters.<br> </div> <pre><span id="VALempty"><span class="keyword">val</span> empty</span> : <code class="type">'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a></code></pre> <pre><span id="VALis_empty"><span class="keyword">val</span> is_empty</span> : <code class="type">'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> bool</code></pre> <pre><span id="VALadd"><span class="keyword">val</span> add</span> : <code class="type">?eq:('a -> 'a -> bool) -><br> <a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -><br> 'a -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a></code></pre><div class="info "> <code class="code">add ?eq u v m</code> returns the new map which is same to <code class="code">m</code> except it maps <code class="code">u</code> to some value <code class="code">v'</code> which satisfies <code class="code">eq v v'</code>. If <code class="code">eq</code> is not supplied, structural equality is used.<br> </div> <pre><span id="VALadd_range"><span class="keyword">val</span> add_range</span> : <code class="type">?eq:('a -> 'a -> bool) -><br> <a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -><br> <a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -><br> 'a -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a></code></pre><div class="info "> <code class="code">add ?eq u1 u2 v m</code> returns the new map which is same to <code class="code">m</code> except it maps characters in the range <code class="code">u1</code>-<code class="code">u2</code> to some value <code class="code">v'</code> which satisfies <code class="code">eq v v'</code>. If <code class="code">eq</code> is not supplied, structural equality is used.<br> </div> <pre><span id="VALfind"><span class="keyword">val</span> find</span> : <code class="type"><a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> 'a</code></pre> <pre><span id="VALremove"><span class="keyword">val</span> remove</span> : <code class="type"><a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -><br> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a></code></pre> <pre><span id="VALremove_range"><span class="keyword">val</span> remove_range</span> : <code class="type"><a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -><br> <a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -><br> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a></code></pre><div class="info "> <code class="code">remove_range u1 u2 m</code> removes <code class="code">u1</code>-<code class="code">u2</code> from the domain of <code class="code">m</code><br> </div> <pre><span id="VALfrom"><span class="keyword">val</span> from</span> : <code class="type"><a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -><br> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a></code></pre><div class="info "> <code class="code">from u m</code> restricts the domain of <code class="code">m</code> to the characters whose code points are equal or greater than <code class="code">u</code>.<br> </div> <pre><span id="VALafter"><span class="keyword">val</span> after</span> : <code class="type"><a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -><br> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a></code></pre><div class="info "> <code class="code">after u m</code> restricts the domain of <code class="code">m</code> to the characters whose code points are greater than <code class="code">u</code>.<br> </div> <pre><span id="VALuntil"><span class="keyword">val</span> until</span> : <code class="type"><a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -><br> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a></code></pre><div class="info "> <code class="code">until u m</code> restricts the domain of <code class="code">m</code> to the characters whose code points are equal or smaller than <code class="code">u</code>.<br> </div> <pre><span id="VALbefore"><span class="keyword">val</span> before</span> : <code class="type"><a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -><br> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a></code></pre><div class="info "> <code class="code">before u m</code> restricts the domain of <code class="code">m</code> to the characters whose code points are smaller than <code class="code">u</code>.<br> </div> <pre><span id="VALmem"><span class="keyword">val</span> mem</span> : <code class="type"><a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> bool</code></pre> <pre><span id="VALiter"><span class="keyword">val</span> iter</span> : <code class="type">(<a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -> 'a -> unit) -><br> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> unit</code></pre> <pre><span id="VALiter_range"><span class="keyword">val</span> iter_range</span> : <code class="type">(<a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -> <a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -> 'a -> unit) -><br> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> unit</code></pre><div class="info "> <code class="code">iter proc m</code> : For each contingent region <code class="code">u1</code>-<code class="code">u2</code> that is mapped to a constant <code class="code">v</code>, <code class="code">proc u1 u2 v</code> is called. The order of call is determined by increasing order on <code class="code">u1</code>.<br> </div> <br> <code class="code">map ?eq f m</code> and <code class="code">mapi ?eq f m</code> : Similar to <code class="code">map</code> and <code class="code">mapi</code> in stdlib Map, but if the map <code class="code">m'</code> is returned, it is only guaranteed that <code class="code">eq (find u m') (f (find u m ))</code> is true for <code class="code">map</code> and <code class="code">eq (find u m') (f u (find u m ))</code> is true for <code class="code">mapi</code>. If <code class="code">eq</code> is not specified, structural equality is used.<br> <pre><span id="VALmap"><span class="keyword">val</span> map</span> : <code class="type">?eq:('b -> 'b -> bool) -><br> ('a -> 'b) -><br> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> 'b <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a></code></pre> <pre><span id="VALmapi"><span class="keyword">val</span> mapi</span> : <code class="type">?eq:('b -> 'b -> bool) -><br> (<a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -> 'a -> 'b) -><br> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> 'b <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a></code></pre> <pre><span id="VALfold"><span class="keyword">val</span> fold</span> : <code class="type">(<a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -> 'b -> 'a -> 'a) -><br> 'b <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> 'a -> 'a</code></pre> <pre><span id="VALfold_range"><span class="keyword">val</span> fold_range</span> : <code class="type">(<a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -><br> <a href="CamomileLibrary.Type.UChar.html#TYPEt">CamomileLibrary.Type.UChar.t</a> -> 'b -> 'a -> 'a) -><br> 'b <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> 'a -> 'a</code></pre><div class="info "> <code class="code">fold_range f m x</code> is equivalent to <code class="code">f u_(2n) u_(2n+1) v_n (... (f u_1 u_2 v_1 x))</code> where all characters in the range <code class="code">u_(2k)</code>-<code class="code">u_(2k+1)</code> are mapped to <code class="code">v_k</code> and <code class="code">u_1</code> < <code class="code">u_3</code> < ... in code point order. For each range <code class="code">u_(2k)</code>-<code class="code">u_(2k+1)</code> is separated by a character which is not mapped to <code class="code">v_k</code>.<br> </div> <pre><span id="VALset_to_map"><span class="keyword">val</span> set_to_map</span> : <code class="type"><a href="CamomileLibrary.Type.USet.html#TYPEt">CamomileLibrary.Type.USet.t</a> -> 'a -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a></code></pre><div class="info "> Constant map.<br> </div> <pre><span id="VALdomain"><span class="keyword">val</span> domain</span> : <code class="type">'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> <a href="CamomileLibrary.Type.USet.html#TYPEt">CamomileLibrary.Type.USet.t</a></code></pre><div class="info "> Domain.<br> </div> <pre><span id="VALmap_to_set"><span class="keyword">val</span> map_to_set</span> : <code class="type">('a -> bool) -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> <a href="CamomileLibrary.Type.USet.html#TYPEt">CamomileLibrary.Type.USet.t</a></code></pre><div class="info "> <code class="code">map_to_set p m</code> returns the set of characters which are mapped to values satisfying the predicate <code class="code">p</code> by <code class="code">m</code>.<br> </div> <pre><span id="VALumap_of_imap"><span class="keyword">val</span> umap_of_imap</span> : <code class="type">'a IMap.t -> 'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a></code></pre> <pre><span id="VALimap_of_umap"><span class="keyword">val</span> imap_of_umap</span> : <code class="type">'a <a href="CamomileLibrary.Type.UMap.html#TYPEt">t</a> -> 'a IMap.t</code></pre></body></html>