<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 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="CaseMap" rel="Chapter" href="CaseMap.html"> <link title="CharEncoding" rel="Chapter" href="CharEncoding.html"> <link title="Default" rel="Chapter" href="Default.html"> <link title="IMap" rel="Chapter" href="IMap.html"> <link title="ISet" rel="Chapter" href="ISet.html"> <link title="Locale" rel="Chapter" href="Locale.html"> <link title="Main" rel="Chapter" href="Main.html"> <link title="OOChannel" rel="Chapter" href="OOChannel.html"> <link title="SubText" rel="Chapter" href="SubText.html"> <link title="UCS4" rel="Chapter" href="UCS4.html"> <link title="UChar" rel="Chapter" href="UChar.html"> <link title="UCharInfo" rel="Chapter" href="UCharInfo.html"> <link title="UCharTbl" rel="Chapter" href="UCharTbl.html"> <link title="UCol" rel="Chapter" href="UCol.html"> <link title="ULine" rel="Chapter" href="ULine.html"> <link title="UMap" rel="Chapter" href="UMap.html"> <link title="UNF" rel="Chapter" href="UNF.html"> <link title="UPervasives" rel="Chapter" href="UPervasives.html"> <link title="URe" rel="Chapter" href="URe.html"> <link title="UReStr" rel="Chapter" href="UReStr.html"> <link title="USet" rel="Chapter" href="USet.html"> <link title="UTF16" rel="Chapter" href="UTF16.html"> <link title="UTF8" rel="Chapter" href="UTF8.html"> <link title="UText" rel="Chapter" href="UText.html"> <link title="UnicodeString" rel="Chapter" href="UnicodeString.html"> <link title="XArray" rel="Chapter" href="XArray.html"> <link title="XString" rel="Chapter" href="XString.html"><title>Main</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="constructor">ISet</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = (int * int) <span class="constructor">AvlTree</span>.tree<br> <span class="keyword">type</span> elt = int<br> <span class="keyword">val</span> empty : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> is_empty : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> add : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> add_range : int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> singleton : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> remove : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> remove_range :<br> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> union :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> inter :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> diff : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> compl : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> compare : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> subset : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> from : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> after : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> until : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> before : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> iter : (int <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iter_range : (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> fold_range :<br> (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> for_all : (int <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (int <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> filter : (int <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> partition :<br> (int <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t * <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> cardinal : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> elements : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> int list<br> <span class="keyword">val</span> ranges : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> (int * int) list<br> <span class="keyword">val</span> min_elt : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> max_elt : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> choose : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">IMap</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a t = (int * int * <span class="keywordsign">'</span>a) <span class="constructor">AvlTree</span>.tree<br> <span class="keyword">type</span> key = int<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> add :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t<br> <span class="keyword">val</span> add_range :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t<br> <span class="keyword">val</span> find : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> remove : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t<br> <span class="keyword">val</span> remove_range :<br> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t<br> <span class="keyword">val</span> from : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t<br> <span class="keyword">val</span> after : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t<br> <span class="keyword">val</span> until : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t<br> <span class="keyword">val</span> before : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t<br> <span class="keyword">val</span> mem : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iter_range :<br> (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> map :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t<br> <span class="keyword">val</span> mapi :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (int <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t<br> <span class="keyword">val</span> fold :<br> (int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> fold_range :<br> (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> set_to_map : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t<br> <span class="keyword">val</span> domain : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> map_to_set :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">XArray</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a xarray<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a t = <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray<br> <span class="keyword">val</span> init :<br> ?bufsize:int <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray<br> <span class="keyword">val</span> make : ?bufsize:int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray<br> <span class="keyword">val</span> length : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> get : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> set : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> index<br> <span class="keyword">val</span> nth :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.index<br> <span class="keyword">val</span> first : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.index<br> <span class="keyword">val</span> last : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.index<br> <span class="keyword">val</span> look :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.index <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> next :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.index<br> <span class="keyword">val</span> prev :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.index<br> <span class="keyword">val</span> move :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.index<br> <span class="keyword">val</span> out_of_range :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> clear : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> copy : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray<br> <span class="keyword">val</span> sub :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray<br> <span class="keyword">val</span> add_element : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_array : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> <span class="keywordsign">'</span>a array <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_xarray :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> append :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray<br> <span class="keyword">val</span> iter : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> array_of : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> <span class="keywordsign">'</span>a array<br> <span class="keyword">val</span> shrink : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XArray</span>.xarray <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">OOChannel</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">class</span> <span class="keyword">type</span> [<span class="keywordsign">'</span>a] obj_input_channel =<br> <span class="keyword">object</span> <span class="keyword">method</span> close_in : unit <span class="keywordsign">-></span> unit <span class="keyword">method</span> get : unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keyword">end</span><br> <span class="keyword">class</span> <span class="keyword">type</span> [<span class="keywordsign">'</span>a] obj_output_channel =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> close_out : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> flush : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> put : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">class</span> [<span class="keywordsign">'</span>a] channel_of_stream :<br> <span class="keywordsign">'</span>a <span class="constructor">Stream</span>.t <span class="keywordsign">-></span> [<span class="keywordsign">'</span>a] obj_input_channel<br> <span class="keyword">val</span> stream_of_channel :<br> <span class="keywordsign">'</span>a <span class="keywordsign">#</span><span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">OOChannel</span>.obj_input_channel <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Stream</span>.t<br> <span class="keyword">class</span> <span class="keyword">type</span> char_input_channel =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> close_in : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> input : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">class</span> <span class="keyword">type</span> char_output_channel =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> close_out : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> flush : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> output : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">class</span> char_input_channel_of :<br> char <span class="keywordsign">#</span><span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">OOChannel</span>.obj_input_channel <span class="keywordsign">-></span> char_input_channel<br> <span class="keyword">class</span> char_obj_input_channel_of :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">OOChannel</span>.char_input_channel <span class="keywordsign">-></span><br> [char] obj_input_channel<br> <span class="keyword">class</span> char_output_channel_of :<br> char <span class="keywordsign">#</span><span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> char_output_channel<br> <span class="keyword">class</span> char_obj_output_channel_of :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">OOChannel</span>.char_output_channel <span class="keywordsign">-></span><br> [char] obj_output_channel<br> <span class="keyword">class</span> of_in_channel : <span class="constructor">Pervasives</span>.in_channel <span class="keywordsign">-></span> char_input_channel<br> <span class="keyword">class</span> of_out_channel :<br> <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> char_output_channel<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UChar</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">exception</span> <span class="constructor">Out_of_range</span><br> <span class="keyword">val</span> char_of : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> char<br> <span class="keyword">val</span> of_char : char <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> code : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> chr : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">external</span> uint_code : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> int = <span class="string">"%identity"</span><br> <span class="keyword">val</span> chr_of_uint : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> eq : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> uchar = <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> int_of : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.uchar <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> of_int : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.uchar<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">USet</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> empty : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> is_empty : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> add : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> add_range :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> singleton : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> remove :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> remove_range :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> union :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> inter :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> diff : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> compl : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> compare : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> subset : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> from :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> after :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> until :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> before :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> iter : (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iter_range :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> fold_range :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> for_all :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> filter :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> partition :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t * <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> cardinal : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> elements : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t list<br> <span class="keyword">val</span> ranges :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t * <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t) list<br> <span class="keyword">val</span> min_elt : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> max_elt : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> choose : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> uset_of_iset : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> iset_of_uset : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ISet</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UMap</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> add :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t<br> <span class="keyword">val</span> add_range :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t<br> <span class="keyword">val</span> find : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> remove :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t<br> <span class="keyword">val</span> remove_range :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t<br> <span class="keyword">val</span> from :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t<br> <span class="keyword">val</span> after :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t<br> <span class="keyword">val</span> until :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t<br> <span class="keyword">val</span> before :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t<br> <span class="keyword">val</span> mem : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iter_range :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> map :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t<br> <span class="keyword">val</span> mapi :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t<br> <span class="keyword">val</span> fold :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> fold_range :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> set_to_map : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t<br> <span class="keyword">val</span> domain : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> map_to_set :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keyword">val</span> umap_of_imap : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t<br> <span class="keyword">val</span> imap_of_umap : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">IMap</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UCharTbl</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a tbl<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a t = <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.tbl<br> <span class="keyword">val</span> get : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.tbl <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> elt<br> <span class="keyword">type</span> t = <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.<span class="constructor">Type</span>.elt <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.tbl<br> <span class="keyword">val</span> get :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.<span class="constructor">Type</span>.elt <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.tbl <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.<span class="constructor">Type</span>.elt<br> <span class="keyword">val</span> of_map :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.<span class="constructor">Type</span>.elt <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.<span class="constructor">Type</span>.elt <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.<span class="constructor">Type</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">H</span> : <span class="constructor">Hashtbl</span>.<span class="constructor">HashedType</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> elt = <span class="constructor">H</span>.t<br> <span class="keyword">type</span> t = elt tbl<br> <span class="keyword">val</span> get : elt tbl <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> of_map : elt <span class="keywordsign">-></span> elt <span class="constructor">UMap</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Bool</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> get :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.<span class="constructor">Bool</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> of_set : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.<span class="constructor">Bool</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Bits</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> of_map :<br> int <span class="keywordsign">-></span> int <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.<span class="constructor">Bits</span>.t<br> <span class="keyword">val</span> get : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.<span class="constructor">Bits</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Bytes</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> of_map :<br> int <span class="keywordsign">-></span> int <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.<span class="constructor">Bytes</span>.t<br> <span class="keyword">val</span> get :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.<span class="constructor">Bytes</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Char</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> of_map :<br> char <span class="keywordsign">-></span> char <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UMap</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.<span class="constructor">Char</span>.t<br> <span class="keyword">val</span> get :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCharTbl</span>.<span class="constructor">Char</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> char<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UnicodeString</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> get :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init :<br> int <span class="keywordsign">-></span><br> (int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t<br> <span class="keyword">val</span> length : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index<br> <span class="keyword">val</span> look :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.index<br> <span class="keyword">val</span> next :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.index<br> <span class="keyword">val</span> prev :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.index<br> <span class="keyword">val</span> out_of_range :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> first :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.index<br> <span class="keyword">val</span> last :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.index<br> <span class="keyword">val</span> move :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.index<br> <span class="keyword">val</span> compare_index :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf<br> <span class="keyword">val</span> contents :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t<br> <span class="keyword">val</span> clear : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UText</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> mutability = [ <span class="keywordsign">`</span><span class="constructor">Immutable</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Mutable</span> ]<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a text<br> <span class="keyword">type</span> utext = [ <span class="keywordsign">`</span><span class="constructor">Immutable</span> ] <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text<br> <span class="keyword">type</span> ustring = [ <span class="keywordsign">`</span><span class="constructor">Mutable</span> ] <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text<br> <span class="keyword">type</span> t = <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.utext<br> <span class="keyword">val</span> utext_of_ustring :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.ustring <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.utext<br> <span class="keyword">val</span> ustring_of_utext :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.utext <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.ustring<br> <span class="keyword">val</span> get : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> set :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.ustring <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> index<br> <span class="keyword">val</span> look :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.index<br> <span class="keyword">val</span> first : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.index<br> <span class="keyword">val</span> last : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.index<br> <span class="keyword">val</span> out_of_range :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> next :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.index<br> <span class="keyword">val</span> prev :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.index<br> <span class="keyword">val</span> move :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.index<br> <span class="keyword">val</span> length : <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> of_string : string <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.utext<br> <span class="keyword">val</span> init :<br> int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.utext<br> <span class="keyword">val</span> init_ustring :<br> int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.ustring<br> <span class="keyword">val</span> make : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.ustring<br> <span class="keyword">val</span> copy : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.ustring <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.ustring<br> <span class="keyword">val</span> sub :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text<br> <span class="keyword">val</span> fill :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.ustring <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> blit :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.ustring <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> append :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text<br> <span class="keyword">val</span> iter :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare :<br> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.<span class="constructor">Buf</span>.buf<br> <span class="keyword">val</span> contents : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.t<br> <span class="keyword">val</span> contents_string :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.ustring<br> <span class="keyword">val</span> length : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> clear : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">XString</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> xstring<br> <span class="keyword">type</span> t = <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring<br> <span class="keyword">val</span> get : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> set :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> length : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> init :<br> int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring<br> <span class="keyword">type</span> index<br> <span class="keyword">val</span> look :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.index<br> <span class="keyword">val</span> first : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.index<br> <span class="keyword">val</span> last : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.index<br> <span class="keyword">val</span> out_of_range :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> next :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.index<br> <span class="keyword">val</span> prev :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.index<br> <span class="keyword">val</span> move :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.index<br> <span class="keyword">val</span> compare_index :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> make :<br> ?bufsize:int <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring<br> <span class="keyword">val</span> clear : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> copy : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring<br> <span class="keyword">val</span> sub :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring<br> <span class="keyword">val</span> add_char :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_text :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.text <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_xstring :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> shrink : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> append :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring<br> <span class="keyword">val</span> utext_of : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.t<br> <span class="keyword">val</span> ustring_of :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UText</span>.ustring<br> <span class="keyword">val</span> iter :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.xstring <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.<span class="constructor">Buf</span>.buf<br> <span class="keyword">val</span> contents : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.t<br> <span class="keyword">val</span> length : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> clear : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">XString</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">SubText</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> get : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init :<br> int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t<br> <span class="keyword">val</span> length : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index<br> <span class="keyword">val</span> look :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.index<br> <span class="keyword">val</span> first :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.index<br> <span class="keyword">val</span> last :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.index<br> <span class="keyword">val</span> next :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.index<br> <span class="keyword">val</span> prev :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.index<br> <span class="keyword">val</span> move :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.index<br> <span class="keyword">val</span> out_of_range :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> iter :<br> (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf<br> <span class="keyword">val</span> contents :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t<br> <span class="keyword">val</span> clear : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">type</span> ur_text<br> <span class="keyword">type</span> ur_index<br> <span class="keyword">val</span> refer :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.ur_text <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.ur_index <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.ur_index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t<br> <span class="keyword">val</span> excerpt :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.ur_text<br> <span class="keyword">val</span> context :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.ur_text *<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.ur_index *<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.ur_index<br> <span class="keyword">val</span> ur_index_of :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.<span class="constructor">Type</span>.ur_index<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">Text</span> : <span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> length : t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index<br> <span class="keyword">val</span> look : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> first : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> next : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> out_of_range : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">type</span> ur_text = <span class="constructor">Text</span>.t<br> <span class="keyword">type</span> ur_index = <span class="constructor">Text</span>.index<br> <span class="keyword">val</span> refer : ur_text <span class="keywordsign">-></span> ur_index <span class="keywordsign">-></span> ur_index <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> excerpt : t <span class="keywordsign">-></span> ur_text<br> <span class="keyword">val</span> context : t <span class="keywordsign">-></span> ur_text * ur_index * ur_index<br> <span class="keyword">val</span> ur_index_of : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> ur_index<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">ULine</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> separator = [ <span class="keywordsign">`</span><span class="constructor">CR</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CRLF</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">LF</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">LS</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">NEL</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">PS</span> ]<br> <span class="keyword">class</span> input :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ULine</span>.separator <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">OOChannel</span>.obj_input_channel <span class="keywordsign">-></span><br> [<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t] <span class="constructor">OOChannel</span>.obj_input_channel<br> <span class="keyword">class</span> output :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ULine</span>.separator <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> [<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t] <span class="constructor">OOChannel</span>.obj_output_channel<br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> text<br> <span class="keyword">class</span> input_line :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">OOChannel</span>.obj_input_channel <span class="keywordsign">-></span><br> [<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ULine</span>.<span class="constructor">Type</span>.text] <span class="constructor">OOChannel</span>.obj_input_channel<br> <span class="keyword">class</span> output_line :<br> ?sp:<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ULine</span>.separator <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> [<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">ULine</span>.<span class="constructor">Type</span>.text] <span class="constructor">OOChannel</span>.obj_output_channel<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">Text</span> : <span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> text = <span class="constructor">Text</span>.t<br> <span class="keyword">class</span> input_line :<br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_input_channel <span class="keywordsign">-></span><br> [text] <span class="constructor">OOChannel</span>.obj_input_channel<br> <span class="keyword">class</span> output_line :<br> ?sp:separator <span class="keywordsign">-></span><br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> [text] <span class="constructor">OOChannel</span>.obj_output_channel<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Locale</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = string<br> <span class="keyword">val</span> read :<br> string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> (<span class="constructor">Pervasives</span>.in_channel <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> contain : string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> bool<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">CharEncoding</span> : <span class="constructor">CharEncoding</span>.<span class="constructor">Interface</span><br> <span class="keyword">module</span> <span class="constructor">UTF8</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = string<br> <span class="keyword">exception</span> <span class="constructor">Malformed_code</span><br> <span class="keyword">val</span> validate : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> get : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t<br> <span class="keyword">val</span> length : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index = int<br> <span class="keyword">val</span> nth : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.index<br> <span class="keyword">val</span> first : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.index<br> <span class="keyword">val</span> last : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.index<br> <span class="keyword">val</span> look :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> out_of_range : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> next :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.index<br> <span class="keyword">val</span> prev :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.index<br> <span class="keyword">val</span> move :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.index<br> <span class="keyword">val</span> iter : (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf = <span class="constructor">Buffer</span>.t<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.<span class="constructor">Buf</span>.buf<br> <span class="keyword">val</span> contents : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t<br> <span class="keyword">val</span> clear : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF8</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UTF16</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t =<br> (int, <span class="constructor">Bigarray</span>.int16_unsigned_elt, <span class="constructor">Bigarray</span>.c_layout)<br> <span class="constructor">Bigarray</span>.<span class="constructor">Array1</span>.t<br> <span class="keyword">exception</span> <span class="constructor">Malformed_code</span><br> <span class="keyword">val</span> validate : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> get : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">exception</span> <span class="constructor">Out_of_range</span><br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t<br> <span class="keyword">val</span> length : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index = int<br> <span class="keyword">val</span> nth : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.index<br> <span class="keyword">val</span> first : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.index<br> <span class="keyword">val</span> last : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.index<br> <span class="keyword">val</span> look :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> out_of_range :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> next :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.index<br> <span class="keyword">val</span> prev :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.index<br> <span class="keyword">val</span> move :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.index<br> <span class="keyword">val</span> iter : (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.<span class="constructor">Buf</span>.buf<br> <span class="keyword">val</span> contents : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t<br> <span class="keyword">val</span> clear : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UTF16</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UCS4</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t =<br> (int32, <span class="constructor">Bigarray</span>.int32_elt, <span class="constructor">Bigarray</span>.c_layout)<br> <span class="constructor">Bigarray</span>.<span class="constructor">Array1</span>.t<br> <span class="keyword">exception</span> <span class="constructor">Malformed_code</span><br> <span class="keyword">val</span> validate : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> get : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t<br> <span class="keyword">val</span> length : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index = int<br> <span class="keyword">val</span> nth : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.index<br> <span class="keyword">val</span> first : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.index<br> <span class="keyword">val</span> last : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.index<br> <span class="keyword">val</span> look :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> out_of_range : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> next :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.index<br> <span class="keyword">val</span> prev :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.index <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.index<br> <span class="keyword">val</span> move :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.index<br> <span class="keyword">val</span> iter : (<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.<span class="constructor">Buf</span>.buf<br> <span class="keyword">val</span> contents : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t<br> <span class="keyword">val</span> clear : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UCS4</span>.<span class="constructor">Buf</span>.buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UPervasives</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> uchar = <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> int_of_uchar : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UPervasives</span>.uchar <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> uchar_of_int : int <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UPervasives</span>.uchar<br> <span class="keyword">val</span> escaped_uchar : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UPervasives</span>.uchar <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> escaped_utf8 : string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> printer_utf8 : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> printer_uchar :<br> <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UPervasives</span>.uchar <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">URe</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> regexp =<br> [ <span class="keywordsign">`</span><span class="constructor">After</span> <span class="keyword">of</span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.regexp<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Alt</span> <span class="keyword">of</span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.regexp * <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.regexp<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Before</span> <span class="keyword">of</span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.regexp<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">BoS</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">EoS</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Epsilon</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Group</span> <span class="keyword">of</span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.regexp<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">OneChar</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Rep</span> <span class="keyword">of</span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.regexp<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Repn</span> <span class="keyword">of</span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.regexp * int * int option<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Seq</span> <span class="keyword">of</span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.regexp * <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.regexp<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Set</span> <span class="keyword">of</span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">USet</span>.t<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">String</span> <span class="keyword">of</span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">UChar</span>.t list ]<br> <span class="keyword">type</span> match_semantics = [ <span class="keywordsign">`</span><span class="constructor">First</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Longest</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Shortest</span> ]<br> <span class="keyword">val</span> no_group : <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.regexp <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.regexp<br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> text<br> <span class="keyword">type</span> index<br> <span class="keyword">type</span> compiled_regexp<br> <span class="keyword">module</span> <span class="constructor">SubText</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> length : t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index<br> <span class="keyword">val</span> look : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> first : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> next : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> out_of_range : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">type</span> ur_text = text<br> <span class="keyword">type</span> ur_index = index<br> <span class="keyword">val</span> refer : ur_text <span class="keywordsign">-></span> ur_index <span class="keywordsign">-></span> ur_index <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> excerpt : t <span class="keywordsign">-></span> ur_text<br> <span class="keyword">val</span> context : t <span class="keywordsign">-></span> ur_text * ur_index * ur_index<br> <span class="keyword">val</span> ur_index_of : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> ur_index<br> <span class="keyword">end</span><br> <span class="keyword">val</span> compile :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.regexp <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.<span class="constructor">Type</span>.compiled_regexp<br> <span class="keyword">val</span> regexp_match :<br> ?sem:<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.match_semantics <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.<span class="constructor">Type</span>.compiled_regexp <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.<span class="constructor">Type</span>.text <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.t option array option<br> <span class="keyword">val</span> string_match :<br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.<span class="constructor">Type</span>.compiled_regexp <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.<span class="constructor">Type</span>.text <span class="keywordsign">-></span> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> search_forward :<br> ?sem:<span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.match_semantics <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.<span class="constructor">Type</span>.compiled_regexp <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.<span class="constructor">Type</span>.text <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.<span class="constructor">Type</span>.index <span class="keywordsign">-></span><br> <span class="constructor">Main</span>.<span class="constructor">Type</span>.<span class="constructor">URe</span>.<span class="constructor">Type</span>.<span class="constructor">SubText</span>.t option array option<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">Text</span> : <span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> text = <span class="constructor">Text</span>.t<br> <span class="keyword">type</span> index = <span class="constructor">Text</span>.index<br> <span class="keyword">type</span> compiled_regexp<br> <span class="keyword">module</span> <span class="constructor">SubText</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> length : t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index<br> <span class="keyword">val</span> look : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> first : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> next : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> out_of_range : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">type</span> ur_text = text<br> <span class="keyword">type</span> ur_index = index<br> <span class="keyword">val</span> refer : ur_text <span class="keywordsign">-></span> ur_index <span class="keywordsign">-></span> ur_index <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> excerpt : t <span class="keywordsign">-></span> ur_text<br> <span class="keyword">val</span> context : t <span class="keywordsign">-></span> ur_text * ur_index * ur_index<br> <span class="keyword">val</span> ur_index_of : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> ur_index<br> <span class="keyword">end</span><br> <span class="keyword">val</span> compile : regexp <span class="keywordsign">-></span> compiled_regexp<br> <span class="keyword">val</span> regexp_match :<br> ?sem:match_semantics <span class="keywordsign">-></span><br> compiled_regexp <span class="keywordsign">-></span><br> text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">SubText</span>.t option array option<br> <span class="keyword">val</span> string_match : compiled_regexp <span class="keywordsign">-></span> text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> search_forward :<br> ?sem:match_semantics <span class="keywordsign">-></span><br> compiled_regexp <span class="keywordsign">-></span><br> text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">SubText</span>.t option array option<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UCharInfo</span> : <span class="constructor">UCharInfo</span>.<span class="constructor">Type</span><br> <span class="keyword">module</span> <span class="constructor">UNF</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> = <span class="constructor">UNF</span>.<span class="constructor">Type</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">Text</span> : <span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> text = <span class="constructor">Text</span>.t<br> <span class="keyword">class</span> nfd :<br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> [<span class="constructor">UChar</span>.t] <span class="constructor">OOChannel</span>.obj_output_channel<br> <span class="keyword">class</span> nfc :<br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> [<span class="constructor">UChar</span>.t] <span class="constructor">OOChannel</span>.obj_output_channel<br> <span class="keyword">class</span> nfkd :<br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> [<span class="constructor">UChar</span>.t] <span class="constructor">OOChannel</span>.obj_output_channel<br> <span class="keyword">class</span> nfkc :<br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> [<span class="constructor">UChar</span>.t] <span class="constructor">OOChannel</span>.obj_output_channel<br> <span class="keyword">val</span> nfd : text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> nfkd : text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> nfc : text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> nfkc : text <span class="keywordsign">-></span> text<br> <span class="keyword">module</span> <span class="constructor">NFCBuf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> text <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">val</span> nfc_append : text <span class="keywordsign">-></span> text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> put_nfd : <span class="constructor">XString</span>.t <span class="keywordsign">-></span> text <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> put_nfkd : <span class="constructor">XString</span>.t <span class="keywordsign">-></span> text <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> put_nfc : <span class="constructor">XString</span>.t <span class="keywordsign">-></span> text <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> put_nfkc : <span class="constructor">XString</span>.t <span class="keywordsign">-></span> text <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> index = <span class="constructor">Text</span>.index<br> <span class="keyword">val</span> nfd_inc :<br> text <span class="keywordsign">-></span><br> index <span class="keywordsign">-></span><br> ([ <span class="keywordsign">`</span><span class="constructor">Inc</span> <span class="keyword">of</span> <span class="constructor">UChar</span>.t list * index * <span class="keywordsign">'</span>a lazy_t ] <span class="keyword">as</span> <span class="keywordsign">'</span>a)<br> <span class="keyword">val</span> canon_compare : text <span class="keywordsign">-></span> text <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> nfd_decompose : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t list<br> <span class="keyword">val</span> nfkd_decompose : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t list<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UCol</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> variable_option =<br> [ <span class="keywordsign">`</span><span class="constructor">Blanked</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Non_ignorable</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Shift_Trimmed</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Shifted</span> ]<br> <span class="keyword">type</span> precision =<br> [ <span class="keywordsign">`</span><span class="constructor">Primary</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Quaternary</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Secondary</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Tertiary</span> ]<br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> = <span class="constructor">UCol</span>.<span class="constructor">Type</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">Text</span> : <span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> text = <span class="constructor">Text</span>.t<br> <span class="keyword">type</span> index = <span class="constructor">Text</span>.index<br> <span class="keyword">val</span> compare :<br> ?locale:string <span class="keywordsign">-></span><br> ?prec:<span class="constructor">UCol</span>.precision <span class="keywordsign">-></span><br> ?variable:<span class="constructor">UCol</span>.variable_option <span class="keywordsign">-></span> text <span class="keywordsign">-></span> text <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> sort_key :<br> ?locale:string <span class="keywordsign">-></span><br> ?prec:<span class="constructor">UCol</span>.precision <span class="keywordsign">-></span><br> ?variable:<span class="constructor">UCol</span>.variable_option <span class="keywordsign">-></span> text <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> compare_with_key :<br> ?locale:string <span class="keywordsign">-></span><br> ?prec:<span class="constructor">UCol</span>.precision <span class="keywordsign">-></span><br> ?variable:<span class="constructor">UCol</span>.variable_option <span class="keywordsign">-></span> string <span class="keywordsign">-></span> text <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> search_with_key :<br> ?locale:string <span class="keywordsign">-></span><br> ?prec:<span class="constructor">UCol</span>.precision <span class="keywordsign">-></span><br> ?variable:<span class="constructor">UCol</span>.variable_option <span class="keywordsign">-></span><br> string <span class="keywordsign">-></span> text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index * index<br> <span class="keyword">val</span> search :<br> ?locale:string <span class="keywordsign">-></span><br> ?prec:<span class="constructor">UCol</span>.precision <span class="keywordsign">-></span><br> ?variable:<span class="constructor">UCol</span>.variable_option <span class="keywordsign">-></span><br> text <span class="keywordsign">-></span> text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index * index<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">CaseMap</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> = <span class="constructor">CaseMap</span>.<span class="constructor">Type</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">Text</span> : <span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> text = <span class="constructor">Text</span>.t<br> <span class="keyword">val</span> lowercase : ?locale:string <span class="keywordsign">-></span> text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> uppercase : ?locale:string <span class="keywordsign">-></span> text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> titlecase : ?locale:string <span class="keywordsign">-></span> text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> casefolding : text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> compare_caseless : text <span class="keywordsign">-></span> text <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UReStr</span> : <span class="constructor">UReStr</span>.<span class="constructor">Interface</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">Config</span> : <span class="constructor">ConfigInt</span>.<span class="constructor">Type</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="constructor">ISet</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = (int * int) <span class="constructor">AvlTree</span>.tree<br> <span class="keyword">type</span> elt = int<br> <span class="keyword">val</span> empty : t<br> <span class="keyword">val</span> is_empty : t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : int <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> add : int <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> add_range : int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> singleton : int <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> remove : int <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> remove_range : int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> union : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> inter : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> diff : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> compl : t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> subset : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> from : int <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> after : int <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> until : int <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> before : int <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> iter : (int <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iter_range : (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> fold_range : (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> for_all : (int <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (int <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> filter : (int <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> partition : (int <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t * t<br> <span class="keyword">val</span> cardinal : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> elements : t <span class="keywordsign">-></span> int list<br> <span class="keyword">val</span> ranges : t <span class="keywordsign">-></span> (int * int) list<br> <span class="keyword">val</span> min_elt : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> max_elt : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> choose : t <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">IMap</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a t = (int * int * <span class="keywordsign">'</span>a) <span class="constructor">AvlTree</span>.tree<br> <span class="keyword">type</span> key = int<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> add : ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> add_range :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> find : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> remove : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> remove_range : int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> from : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> after : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> until : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> before : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> mem : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iter_range : (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> map : ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> (<span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> mapi :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> fold : (int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> fold_range :<br> (int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> set_to_map : <span class="constructor">ISet</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> domain : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="constructor">ISet</span>.t<br> <span class="keyword">val</span> map_to_set : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="constructor">ISet</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">XArray</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a xarray = <span class="keywordsign">'</span>a <span class="constructor">XArray</span>.xarray<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a t = <span class="keywordsign">'</span>a xarray<br> <span class="keyword">val</span> init : ?bufsize:int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a xarray<br> <span class="keyword">val</span> make : ?bufsize:int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a xarray<br> <span class="keyword">val</span> length : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> get : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> set : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> index = <span class="constructor">XArray</span>.index<br> <span class="keyword">val</span> nth : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> first : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> look : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> next : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> out_of_range : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> clear : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> copy : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> <span class="keywordsign">'</span>a xarray<br> <span class="keyword">val</span> sub : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a xarray<br> <span class="keyword">val</span> add_element : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_array : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> <span class="keywordsign">'</span>a array <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_xarray : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> append : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> <span class="keywordsign">'</span>a xarray<br> <span class="keyword">val</span> iter : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> array_of : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> <span class="keywordsign">'</span>a array<br> <span class="keyword">val</span> shrink : <span class="keywordsign">'</span>a xarray <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">OOChannel</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">class</span> <span class="keyword">type</span> [<span class="keywordsign">'</span>a] obj_input_channel =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> close_in : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> get : unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">end</span><br> <span class="keyword">class</span> <span class="keyword">type</span> [<span class="keywordsign">'</span>a] obj_output_channel =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> close_out : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> flush : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> put : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">class</span> [<span class="keywordsign">'</span>a] channel_of_stream :<br> <span class="keywordsign">'</span>a <span class="constructor">Stream</span>.t <span class="keywordsign">-></span> [<span class="keywordsign">'</span>a] obj_input_channel<br> <span class="keyword">val</span> stream_of_channel : <span class="keywordsign">'</span>a <span class="keywordsign">#</span>obj_input_channel <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Stream</span>.t<br> <span class="keyword">class</span> <span class="keyword">type</span> char_input_channel =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> close_in : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> input : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">class</span> <span class="keyword">type</span> char_output_channel =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> close_out : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> flush : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> output : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">class</span> char_input_channel_of :<br> char <span class="keywordsign">#</span>obj_input_channel <span class="keywordsign">-></span> char_input_channel<br> <span class="keyword">class</span> char_obj_input_channel_of :<br> char_input_channel <span class="keywordsign">-></span> [char] obj_input_channel<br> <span class="keyword">class</span> char_output_channel_of :<br> char <span class="keywordsign">#</span>obj_output_channel <span class="keywordsign">-></span> char_output_channel<br> <span class="keyword">class</span> char_obj_output_channel_of :<br> char_output_channel <span class="keywordsign">-></span> [char] obj_output_channel<br> <span class="keyword">class</span> of_in_channel : in_channel <span class="keywordsign">-></span> char_input_channel<br> <span class="keyword">class</span> of_out_channel : out_channel <span class="keywordsign">-></span> char_output_channel<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UChar</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">UChar</span>.t<br> <span class="keyword">exception</span> <span class="constructor">Out_of_range</span><br> <span class="keyword">val</span> char_of : t <span class="keywordsign">-></span> char<br> <span class="keyword">val</span> of_char : char <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> code : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> chr : int <span class="keywordsign">-></span> t<br> <span class="keyword">external</span> uint_code : t <span class="keywordsign">-></span> int = <span class="string">"%identity"</span><br> <span class="keyword">val</span> chr_of_uint : int <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> eq : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> uchar = t<br> <span class="keyword">val</span> int_of : uchar <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> of_int : int <span class="keywordsign">-></span> uchar<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">USet</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">USet</span>.t<br> <span class="keyword">val</span> empty : t<br> <span class="keyword">val</span> is_empty : t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> add : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> add_range : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> singleton : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> remove : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> remove_range : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> union : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> inter : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> diff : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> compl : t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> subset : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> from : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> after : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> until : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> before : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iter_range : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> fold_range :<br> (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> for_all : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> filter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> partition : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t * t<br> <span class="keyword">val</span> cardinal : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> elements : t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t list<br> <span class="keyword">val</span> ranges : t <span class="keywordsign">-></span> (<span class="constructor">UChar</span>.t * <span class="constructor">UChar</span>.t) list<br> <span class="keyword">val</span> min_elt : t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> max_elt : t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> choose : t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> uset_of_iset : <span class="constructor">ISet</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> iset_of_uset : t <span class="keywordsign">-></span> <span class="constructor">ISet</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UMap</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a t = <span class="keywordsign">'</span>a <span class="constructor">UMap</span>.t<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> add : ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> add_range :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> find : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> remove : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> remove_range : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> from : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> after : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> until : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> before : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> mem : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iter_range :<br> (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> map : ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> (<span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> mapi :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> fold : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> fold_range :<br> (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> set_to_map : <span class="constructor">USet</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> domain : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="constructor">USet</span>.t<br> <span class="keyword">val</span> map_to_set : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="constructor">USet</span>.t<br> <span class="keyword">val</span> umap_of_imap : <span class="keywordsign">'</span>a <span class="constructor">IMap</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> imap_of_umap : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">IMap</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UCharTbl</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a tbl = <span class="keywordsign">'</span>a <span class="constructor">UCharTbl</span>.tbl<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a t = <span class="keywordsign">'</span>a tbl<br> <span class="keyword">val</span> get : <span class="keywordsign">'</span>a tbl <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> elt<br> <span class="keyword">type</span> t = elt tbl<br> <span class="keyword">val</span> get : elt tbl <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> of_map : elt <span class="keywordsign">-></span> elt <span class="constructor">UMap</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">H</span> : <span class="constructor">Hashtbl</span>.<span class="constructor">HashedType</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> elt = <span class="constructor">H</span>.t<br> <span class="keyword">type</span> t = elt tbl<br> <span class="keyword">val</span> get : elt tbl <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> of_map : elt <span class="keywordsign">-></span> elt <span class="constructor">UMap</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Bool</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">UCharTbl</span>.<span class="constructor">Bool</span>.t<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> of_set : <span class="constructor">USet</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Bits</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">UCharTbl</span>.<span class="constructor">Bits</span>.t<br> <span class="keyword">val</span> of_map : int <span class="keywordsign">-></span> int <span class="constructor">UMap</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Bytes</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">UCharTbl</span>.<span class="constructor">Bytes</span>.t<br> <span class="keyword">val</span> of_map : int <span class="keywordsign">-></span> int <span class="constructor">UMap</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Char</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">UCharTbl</span>.<span class="constructor">Char</span>.t<br> <span class="keyword">val</span> of_map : char <span class="keywordsign">-></span> char <span class="constructor">UMap</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> char<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UnicodeString</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> length : t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index<br> <span class="keyword">val</span> look : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> next : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> out_of_range : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> first : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> compare_index : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UText</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> mutability = [ <span class="keywordsign">`</span><span class="constructor">Immutable</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Mutable</span> ]<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a text = <span class="keywordsign">'</span>a <span class="constructor">UText</span>.text<br> <span class="keyword">type</span> utext = [ <span class="keywordsign">`</span><span class="constructor">Immutable</span> ] text<br> <span class="keyword">type</span> ustring = [ <span class="keywordsign">`</span><span class="constructor">Mutable</span> ] text<br> <span class="keyword">type</span> t = utext<br> <span class="keyword">val</span> utext_of_ustring : ustring <span class="keywordsign">-></span> utext<br> <span class="keyword">val</span> ustring_of_utext : utext <span class="keywordsign">-></span> ustring<br> <span class="keyword">val</span> get : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> set : ustring <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> index = <span class="constructor">UText</span>.index<br> <span class="keyword">val</span> look : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> first : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> out_of_range : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> next : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> length : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> of_string : string <span class="keywordsign">-></span> utext<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> utext<br> <span class="keyword">val</span> init_ustring : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> ustring<br> <span class="keyword">val</span> make : int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> ustring<br> <span class="keyword">val</span> copy : ustring <span class="keywordsign">-></span> ustring<br> <span class="keyword">val</span> sub : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a text<br> <span class="keyword">val</span> fill : ustring <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> blit : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> int <span class="keywordsign">-></span> ustring <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> append : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> <span class="keywordsign">'</span>b text <span class="keywordsign">-></span> <span class="keywordsign">'</span>a text<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> <span class="keywordsign">'</span>b text <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf = <span class="constructor">UText</span>.<span class="constructor">Buf</span>.buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> contents_string : buf <span class="keywordsign">-></span> ustring<br> <span class="keyword">val</span> length : buf <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> <span class="keywordsign">'</span>a text <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">XString</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> xstring = <span class="constructor">XString</span>.xstring<br> <span class="keyword">type</span> t = xstring<br> <span class="keyword">val</span> get : xstring <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> set : xstring <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> length : xstring <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> xstring<br> <span class="keyword">type</span> index = <span class="constructor">XString</span>.index<br> <span class="keyword">val</span> look : xstring <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth : xstring <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> first : xstring <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : xstring <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> out_of_range : xstring <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> next : xstring <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : xstring <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : xstring <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> compare_index : xstring <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> make : ?bufsize:int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> xstring<br> <span class="keyword">val</span> clear : xstring <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : xstring <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> copy : xstring <span class="keywordsign">-></span> xstring<br> <span class="keyword">val</span> sub : xstring <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> xstring<br> <span class="keyword">val</span> add_char : xstring <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_text : xstring <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">UText</span>.text <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_xstring : xstring <span class="keywordsign">-></span> xstring <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> shrink : xstring <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> append : xstring <span class="keywordsign">-></span> xstring <span class="keywordsign">-></span> xstring<br> <span class="keyword">val</span> utext_of : xstring <span class="keywordsign">-></span> <span class="constructor">UText</span>.t<br> <span class="keyword">val</span> ustring_of : xstring <span class="keywordsign">-></span> <span class="constructor">UText</span>.ustring<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> xstring <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf = <span class="constructor">XString</span>.<span class="constructor">Buf</span>.buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> length : buf <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">SubText</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> length : t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index<br> <span class="keyword">val</span> look : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> first : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> next : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> out_of_range : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">type</span> ur_text<br> <span class="keyword">type</span> ur_index<br> <span class="keyword">val</span> refer : ur_text <span class="keywordsign">-></span> ur_index <span class="keywordsign">-></span> ur_index <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> excerpt : t <span class="keywordsign">-></span> ur_text<br> <span class="keyword">val</span> context : t <span class="keywordsign">-></span> ur_text * ur_index * ur_index<br> <span class="keyword">val</span> ur_index_of : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> ur_index<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">Text</span> : <span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">SubText</span>.<span class="constructor">Make</span>(<span class="constructor">Text</span>).t<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> length : t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index = <span class="constructor">SubText</span>.<span class="constructor">Make</span>(<span class="constructor">Text</span>).index<br> <span class="keyword">val</span> look : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> first : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> next : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> out_of_range : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf = <span class="constructor">SubText</span>.<span class="constructor">Make</span>(<span class="constructor">Text</span>).<span class="constructor">Buf</span>.buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">type</span> ur_text = <span class="constructor">Text</span>.t<br> <span class="keyword">type</span> ur_index = <span class="constructor">Text</span>.index<br> <span class="keyword">val</span> refer : ur_text <span class="keywordsign">-></span> ur_index <span class="keywordsign">-></span> ur_index <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> excerpt : t <span class="keywordsign">-></span> ur_text<br> <span class="keyword">val</span> context : t <span class="keywordsign">-></span> ur_text * ur_index * ur_index<br> <span class="keyword">val</span> ur_index_of : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> ur_index<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">ULine</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> separator = [ <span class="keywordsign">`</span><span class="constructor">CR</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">CRLF</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">LF</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">LS</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">NEL</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">PS</span> ]<br> <span class="keyword">class</span> input :<br> separator <span class="keywordsign">-></span><br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_input_channel <span class="keywordsign">-></span><br> [<span class="constructor">UChar</span>.t] <span class="constructor">OOChannel</span>.obj_input_channel<br> <span class="keyword">class</span> output :<br> separator <span class="keywordsign">-></span><br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> [<span class="constructor">UChar</span>.t] <span class="constructor">OOChannel</span>.obj_output_channel<br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> text<br> <span class="keyword">class</span> input_line :<br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_input_channel <span class="keywordsign">-></span><br> [text] <span class="constructor">OOChannel</span>.obj_input_channel<br> <span class="keyword">class</span> output_line :<br> ?sp:separator <span class="keywordsign">-></span><br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> [text] <span class="constructor">OOChannel</span>.obj_output_channel<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">Text</span> : <span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> text = <span class="constructor">Text</span>.t<br> <span class="keyword">class</span> input_line :<br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_input_channel <span class="keywordsign">-></span><br> [text] <span class="constructor">OOChannel</span>.obj_input_channel<br> <span class="keyword">class</span> output_line :<br> ?sp:separator <span class="keywordsign">-></span><br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> [text] <span class="constructor">OOChannel</span>.obj_output_channel<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Locale</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = string<br> <span class="keyword">val</span> read : string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> (in_channel <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> contain : string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> bool<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">CharEncoding</span> : <span class="constructor">CharEncoding</span>.<span class="constructor">Interface</span><br> <span class="keyword">module</span> <span class="constructor">UTF8</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = string<br> <span class="keyword">exception</span> <span class="constructor">Malformed_code</span><br> <span class="keyword">val</span> validate : t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> length : t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index = int<br> <span class="keyword">val</span> nth : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> first : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> look : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> out_of_range : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> next : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf = <span class="constructor">Buffer</span>.t<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UTF16</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t =<br> (int, <span class="constructor">Bigarray</span>.int16_unsigned_elt, <span class="constructor">Bigarray</span>.c_layout)<br> <span class="constructor">Bigarray</span>.<span class="constructor">Array1</span>.t<br> <span class="keyword">exception</span> <span class="constructor">Malformed_code</span><br> <span class="keyword">val</span> validate : t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">exception</span> <span class="constructor">Out_of_range</span><br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> length : t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index = int<br> <span class="keyword">val</span> nth : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> first : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> look : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> out_of_range : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> next : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf = <span class="constructor">UTF16</span>.<span class="constructor">Buf</span>.buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UCS4</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t =<br> (int32, <span class="constructor">Bigarray</span>.int32_elt, <span class="constructor">Bigarray</span>.c_layout)<br> <span class="constructor">Bigarray</span>.<span class="constructor">Array1</span>.t<br> <span class="keyword">exception</span> <span class="constructor">Malformed_code</span><br> <span class="keyword">val</span> validate : t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> length : t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index = int<br> <span class="keyword">val</span> nth : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> first : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> look : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> out_of_range : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> next : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf = <span class="constructor">UCS4</span>.<span class="constructor">Buf</span>.buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UPervasives</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> uchar = <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> int_of_uchar : uchar <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> uchar_of_int : int <span class="keywordsign">-></span> uchar<br> <span class="keyword">val</span> escaped_uchar : uchar <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> escaped_utf8 : string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> printer_utf8 : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> printer_uchar : <span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> uchar <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">URe</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> regexp =<br> [ <span class="keywordsign">`</span><span class="constructor">After</span> <span class="keyword">of</span> regexp<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Alt</span> <span class="keyword">of</span> regexp * regexp<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Before</span> <span class="keyword">of</span> regexp<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">BoS</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">EoS</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Epsilon</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Group</span> <span class="keyword">of</span> regexp<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">OneChar</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Rep</span> <span class="keyword">of</span> regexp<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Repn</span> <span class="keyword">of</span> regexp * int * int option<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Seq</span> <span class="keyword">of</span> regexp * regexp<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Set</span> <span class="keyword">of</span> <span class="constructor">USet</span>.t<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">String</span> <span class="keyword">of</span> <span class="constructor">UChar</span>.t list ]<br> <span class="keyword">type</span> match_semantics = [ <span class="keywordsign">`</span><span class="constructor">First</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Longest</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Shortest</span> ]<br> <span class="keyword">val</span> no_group : regexp <span class="keywordsign">-></span> regexp<br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> text<br> <span class="keyword">type</span> index<br> <span class="keyword">type</span> compiled_regexp<br> <span class="keyword">module</span> <span class="constructor">SubText</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> length : t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index<br> <span class="keyword">val</span> look : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> first : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> next : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> out_of_range : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">type</span> ur_text = text<br> <span class="keyword">type</span> ur_index = index<br> <span class="keyword">val</span> refer : ur_text <span class="keywordsign">-></span> ur_index <span class="keywordsign">-></span> ur_index <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> excerpt : t <span class="keywordsign">-></span> ur_text<br> <span class="keyword">val</span> context : t <span class="keywordsign">-></span> ur_text * ur_index * ur_index<br> <span class="keyword">val</span> ur_index_of : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> ur_index<br> <span class="keyword">end</span><br> <span class="keyword">val</span> compile : regexp <span class="keywordsign">-></span> compiled_regexp<br> <span class="keyword">val</span> regexp_match :<br> ?sem:match_semantics <span class="keywordsign">-></span><br> compiled_regexp <span class="keywordsign">-></span><br> text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">SubText</span>.t option array option<br> <span class="keyword">val</span> string_match : compiled_regexp <span class="keywordsign">-></span> text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> search_forward :<br> ?sem:match_semantics <span class="keywordsign">-></span><br> compiled_regexp <span class="keywordsign">-></span><br> text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">SubText</span>.t option array option<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">Text</span> : <span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> text = <span class="constructor">Text</span>.t<br> <span class="keyword">type</span> index = <span class="constructor">Text</span>.index<br> <span class="keyword">type</span> compiled_regexp<br> <span class="keyword">module</span> <span class="constructor">SubText</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> get : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> init : int <span class="keywordsign">-></span> (int <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t) <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> length : t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> index<br> <span class="keyword">val</span> look : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t<br> <span class="keyword">val</span> nth : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> first : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> last : t <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> next : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> prev : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> move : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int <span class="keywordsign">-></span> index<br> <span class="keyword">val</span> out_of_range : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> compare_index : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> iter : (<span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Buf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">type</span> ur_text = text<br> <span class="keyword">type</span> ur_index = index<br> <span class="keyword">val</span> refer : ur_text <span class="keywordsign">-></span> ur_index <span class="keywordsign">-></span> ur_index <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> excerpt : t <span class="keywordsign">-></span> ur_text<br> <span class="keyword">val</span> context : t <span class="keywordsign">-></span> ur_text * ur_index * ur_index<br> <span class="keyword">val</span> ur_index_of : t <span class="keywordsign">-></span> index <span class="keywordsign">-></span> ur_index<br> <span class="keyword">end</span><br> <span class="keyword">val</span> compile : regexp <span class="keywordsign">-></span> compiled_regexp<br> <span class="keyword">val</span> regexp_match :<br> ?sem:match_semantics <span class="keywordsign">-></span><br> compiled_regexp <span class="keywordsign">-></span><br> text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">SubText</span>.t option array option<br> <span class="keyword">val</span> string_match : compiled_regexp <span class="keywordsign">-></span> text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> search_forward :<br> ?sem:match_semantics <span class="keywordsign">-></span><br> compiled_regexp <span class="keywordsign">-></span><br> text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> <span class="constructor">SubText</span>.t option array option<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UCharInfo</span> : <span class="constructor">UCharInfo</span>.<span class="constructor">Type</span><br> <span class="keyword">module</span> <span class="constructor">UNF</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> = <span class="constructor">UNF</span>.<span class="constructor">Type</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">Text</span> : <span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> text = <span class="constructor">Text</span>.t<br> <span class="keyword">class</span> nfd :<br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> [<span class="constructor">UChar</span>.t] <span class="constructor">OOChannel</span>.obj_output_channel<br> <span class="keyword">class</span> nfc :<br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> [<span class="constructor">UChar</span>.t] <span class="constructor">OOChannel</span>.obj_output_channel<br> <span class="keyword">class</span> nfkd :<br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> [<span class="constructor">UChar</span>.t] <span class="constructor">OOChannel</span>.obj_output_channel<br> <span class="keyword">class</span> nfkc :<br> <span class="constructor">UChar</span>.t <span class="keywordsign">#</span><span class="constructor">OOChannel</span>.obj_output_channel <span class="keywordsign">-></span><br> [<span class="constructor">UChar</span>.t] <span class="constructor">OOChannel</span>.obj_output_channel<br> <span class="keyword">val</span> nfd : text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> nfkd : text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> nfc : text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> nfkc : text <span class="keywordsign">-></span> text<br> <span class="keyword">module</span> <span class="constructor">NFCBuf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> buf<br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> buf<br> <span class="keyword">val</span> contents : buf <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> clear : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reset : buf <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_char : buf <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_string : buf <span class="keywordsign">-></span> text <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_buffer : buf <span class="keywordsign">-></span> buf <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">val</span> nfc_append : text <span class="keywordsign">-></span> text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> put_nfd : <span class="constructor">XString</span>.t <span class="keywordsign">-></span> text <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> put_nfkd : <span class="constructor">XString</span>.t <span class="keywordsign">-></span> text <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> put_nfc : <span class="constructor">XString</span>.t <span class="keywordsign">-></span> text <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> put_nfkc : <span class="constructor">XString</span>.t <span class="keywordsign">-></span> text <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> index = <span class="constructor">Text</span>.index<br> <span class="keyword">val</span> nfd_inc :<br> text <span class="keywordsign">-></span><br> index <span class="keywordsign">-></span><br> ([ <span class="keywordsign">`</span><span class="constructor">Inc</span> <span class="keyword">of</span> <span class="constructor">UChar</span>.t list * index * <span class="keywordsign">'</span>a lazy_t ] <span class="keyword">as</span> <span class="keywordsign">'</span>a)<br> <span class="keyword">val</span> canon_compare : text <span class="keywordsign">-></span> text <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> nfd_decompose : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t list<br> <span class="keyword">val</span> nfkd_decompose : <span class="constructor">UChar</span>.t <span class="keywordsign">-></span> <span class="constructor">UChar</span>.t list<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UCol</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> variable_option =<br> [ <span class="keywordsign">`</span><span class="constructor">Blanked</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Non_ignorable</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Shift_Trimmed</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Shifted</span> ]<br> <span class="keyword">type</span> precision =<br> [ <span class="keywordsign">`</span><span class="constructor">Primary</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Quaternary</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Secondary</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Tertiary</span> ]<br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> = <span class="constructor">UCol</span>.<span class="constructor">Type</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">Text</span> : <span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> text = <span class="constructor">Text</span>.t<br> <span class="keyword">type</span> index = <span class="constructor">Text</span>.index<br> <span class="keyword">val</span> compare :<br> ?locale:string <span class="keywordsign">-></span><br> ?prec:<span class="constructor">UCol</span>.precision <span class="keywordsign">-></span><br> ?variable:<span class="constructor">UCol</span>.variable_option <span class="keywordsign">-></span> text <span class="keywordsign">-></span> text <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> sort_key :<br> ?locale:string <span class="keywordsign">-></span><br> ?prec:<span class="constructor">UCol</span>.precision <span class="keywordsign">-></span><br> ?variable:<span class="constructor">UCol</span>.variable_option <span class="keywordsign">-></span> text <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> compare_with_key :<br> ?locale:string <span class="keywordsign">-></span><br> ?prec:<span class="constructor">UCol</span>.precision <span class="keywordsign">-></span><br> ?variable:<span class="constructor">UCol</span>.variable_option <span class="keywordsign">-></span> string <span class="keywordsign">-></span> text <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> search_with_key :<br> ?locale:string <span class="keywordsign">-></span><br> ?prec:<span class="constructor">UCol</span>.precision <span class="keywordsign">-></span><br> ?variable:<span class="constructor">UCol</span>.variable_option <span class="keywordsign">-></span><br> string <span class="keywordsign">-></span> text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index * index<br> <span class="keyword">val</span> search :<br> ?locale:string <span class="keywordsign">-></span><br> ?prec:<span class="constructor">UCol</span>.precision <span class="keywordsign">-></span><br> ?variable:<span class="constructor">UCol</span>.variable_option <span class="keywordsign">-></span><br> text <span class="keywordsign">-></span> text <span class="keywordsign">-></span> index <span class="keywordsign">-></span> index * index<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">CaseMap</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Type</span> = <span class="constructor">CaseMap</span>.<span class="constructor">Type</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">Text</span> : <span class="constructor">UnicodeString</span>.<span class="constructor">Type</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> text = <span class="constructor">Text</span>.t<br> <span class="keyword">val</span> lowercase : ?locale:string <span class="keywordsign">-></span> text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> uppercase : ?locale:string <span class="keywordsign">-></span> text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> titlecase : ?locale:string <span class="keywordsign">-></span> text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> casefolding : text <span class="keywordsign">-></span> text<br> <span class="keyword">val</span> compare_caseless : text <span class="keywordsign">-></span> text <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">UReStr</span> : <span class="constructor">UReStr</span>.<span class="constructor">Interface</span><br> <span class="keyword">end</span><br> <span class="keyword">end</span></code></body></html>