mirror of
https://github.com/c-cube/iter.git
synced 2025-12-06 19:25:30 -05:00
338 lines
No EOL
93 KiB
HTML
338 lines
No EOL
93 KiB
HTML
<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 values" rel=Appendix href="index_values.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="Sequence" rel="Chapter" href="Sequence.html"><title>Sequence</title>
|
|
</head>
|
|
<body>
|
|
<code class="code"><span class="keyword">sig</span><br>
|
|
<span class="keyword">type</span> <span class="keywordsign">'</span>a t = (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) t2 = (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> from_iter : ((<span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> from_fun : (unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a option) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> empty : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> singleton : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> repeat : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> iterate : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> forever : (unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> cycle : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<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">Sequence</span>.t <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> iteri : (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">Sequence</span>.t <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> fold : (<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="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br>
|
|
<span class="keyword">val</span> foldi : (<span class="keywordsign">'</span>b <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">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br>
|
|
<span class="keyword">val</span> map : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> mapi : (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>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> for_all : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> exists : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> length : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> int<br>
|
|
<span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> filter : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> append : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> concat : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> flatten : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> flatMap : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Sequence</span>.t) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> intersperse : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> persistent : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> sort : ?cmp:(<span class="keywordsign">'</span>a <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="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> sort_uniq : ?cmp:(<span class="keywordsign">'</span>a <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="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> group : ?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>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> uniq : ?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>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> product : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> join :<br>
|
|
join_row:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c option) <span class="keywordsign">-></span><br>
|
|
<span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> unfoldr : (<span class="keywordsign">'</span>b <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) option) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> scan : (<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="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> max : ?lt:(<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>a <span class="constructor">Sequence</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> min : ?lt:(<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>a <span class="constructor">Sequence</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> take : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> drop : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> rev : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> empty2 : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t2<br>
|
|
<span class="keyword">val</span> is_empty2 : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t2 <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> length2 : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t2 <span class="keywordsign">-></span> int<br>
|
|
<span class="keyword">val</span> zip : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t2 <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> unzip : (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t2<br>
|
|
<span class="keyword">val</span> zip_i : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> (int, <span class="keywordsign">'</span>a) <span class="constructor">Sequence</span>.t2<br>
|
|
<span class="keyword">val</span> fold2 : (<span class="keywordsign">'</span>c <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>c) <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t2 <span class="keywordsign">-></span> <span class="keywordsign">'</span>c<br>
|
|
<span class="keyword">val</span> iter2 : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t2 <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> map2 : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c) <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t2 <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> map2_2 :<br>
|
|
(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c) <span class="keywordsign">-></span><br>
|
|
(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>d) <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t2 <span class="keywordsign">-></span> (<span class="keywordsign">'</span>c, <span class="keywordsign">'</span>d) <span class="constructor">Sequence</span>.t2<br>
|
|
<span class="keyword">val</span> to_list : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br>
|
|
<span class="keyword">val</span> to_rev_list : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br>
|
|
<span class="keyword">val</span> of_list : <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> to_array : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a array<br>
|
|
<span class="keyword">val</span> of_array : <span class="keywordsign">'</span>a array <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> of_array_i : <span class="keywordsign">'</span>a array <span class="keywordsign">-></span> (int * <span class="keywordsign">'</span>a) <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> of_array2 : <span class="keywordsign">'</span>a array <span class="keywordsign">-></span> (int, <span class="keywordsign">'</span>a) <span class="constructor">Sequence</span>.t2<br>
|
|
<span class="keyword">val</span> array_slice : <span class="keywordsign">'</span>a array <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> of_stream : <span class="keywordsign">'</span>a <span class="constructor">Stream</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> to_stream : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Stream</span>.t<br>
|
|
<span class="keyword">val</span> to_stack : <span class="keywordsign">'</span>a <span class="constructor">Stack</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> of_stack : <span class="keywordsign">'</span>a <span class="constructor">Stack</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> to_queue : <span class="keywordsign">'</span>a <span class="constructor">Queue</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> of_queue : <span class="keywordsign">'</span>a <span class="constructor">Queue</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> hashtbl_add : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Hashtbl</span>.t <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> hashtbl_replace : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Hashtbl</span>.t <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> to_hashtbl : (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Hashtbl</span>.t<br>
|
|
<span class="keyword">val</span> to_hashtbl2 : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t2 <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Hashtbl</span>.t<br>
|
|
<span class="keyword">val</span> of_hashtbl : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Hashtbl</span>.t <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> of_hashtbl2 : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Hashtbl</span>.t <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.t2<br>
|
|
<span class="keyword">val</span> hashtbl_keys : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Hashtbl</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> hashtbl_values : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Hashtbl</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> of_str : string <span class="keywordsign">-></span> char <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> to_str : char <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> string<br>
|
|
<span class="keyword">val</span> of_in_channel : <span class="constructor">Pervasives</span>.in_channel <span class="keywordsign">-></span> char <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> to_buffer : char <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="constructor">Buffer</span>.t <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> int_range : start:int <span class="keywordsign">-></span> stop:int <span class="keywordsign">-></span> int <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> of_set :<br>
|
|
(<span class="keyword">module</span> <span class="constructor">Set</span>.<span class="constructor">S</span> <span class="keyword">with</span> <span class="keyword">type</span> elt = <span class="keywordsign">'</span>a <span class="keyword">and</span> <span class="keyword">type</span> t = <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">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> to_set :<br>
|
|
(<span class="keyword">module</span> <span class="constructor">Set</span>.<span class="constructor">S</span> <span class="keyword">with</span> <span class="keyword">type</span> elt = <span class="keywordsign">'</span>a <span class="keyword">and</span> <span class="keyword">type</span> t = <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br>
|
|
<span class="keyword">module</span> <span class="constructor">Set</span> :<br>
|
|
<span class="keyword">sig</span><br>
|
|
<span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">S</span> =<br>
|
|
<span class="keyword">sig</span><br>
|
|
<span class="keyword">type</span> set<br>
|
|
<span class="keyword">type</span> elt<br>
|
|
<span class="keyword">val</span> empty : set<br>
|
|
<span class="keyword">val</span> is_empty : set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> mem : elt <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> add : elt <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> singleton : elt <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> remove : elt <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> union : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> inter : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> diff : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> compare : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> int<br>
|
|
<span class="keyword">val</span> equal : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> subset : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> iter : (elt <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> fold : (elt <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> set <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 : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> exists : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> filter : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> partition : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set * set<br>
|
|
<span class="keyword">val</span> cardinal : set <span class="keywordsign">-></span> int<br>
|
|
<span class="keyword">val</span> elements : set <span class="keywordsign">-></span> elt list<br>
|
|
<span class="keyword">val</span> min_elt : set <span class="keywordsign">-></span> elt<br>
|
|
<span class="keyword">val</span> max_elt : set <span class="keywordsign">-></span> elt<br>
|
|
<span class="keyword">val</span> choose : set <span class="keywordsign">-></span> elt<br>
|
|
<span class="keyword">val</span> split : elt <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set * bool * set<br>
|
|
<span class="keyword">val</span> of_seq : elt <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="constructor">Sequence</span>.<span class="constructor">Set</span>.<span class="constructor">S</span>.set<br>
|
|
<span class="keyword">val</span> to_seq : <span class="constructor">Sequence</span>.<span class="constructor">Set</span>.<span class="constructor">S</span>.set <span class="keywordsign">-></span> elt <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">end</span><br>
|
|
<span class="keyword">module</span> <span class="constructor">Adapt</span> :<br>
|
|
<span class="keyword">functor</span> (<span class="constructor">X</span> : <span class="constructor">Set</span>.<span class="constructor">S</span>) <span class="keywordsign">-></span><br>
|
|
<span class="keyword">sig</span><br>
|
|
<span class="keyword">type</span> set = <span class="constructor">X</span>.t<br>
|
|
<span class="keyword">type</span> elt = <span class="constructor">X</span>.elt<br>
|
|
<span class="keyword">val</span> empty : set<br>
|
|
<span class="keyword">val</span> is_empty : set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> mem : elt <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> add : elt <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> singleton : elt <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> remove : elt <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> union : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> inter : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> diff : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> compare : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> int<br>
|
|
<span class="keyword">val</span> equal : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> subset : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> iter : (elt <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> fold : (elt <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> set <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 : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> exists : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> filter : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> partition : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set * set<br>
|
|
<span class="keyword">val</span> cardinal : set <span class="keywordsign">-></span> int<br>
|
|
<span class="keyword">val</span> elements : set <span class="keywordsign">-></span> elt list<br>
|
|
<span class="keyword">val</span> min_elt : set <span class="keywordsign">-></span> elt<br>
|
|
<span class="keyword">val</span> max_elt : set <span class="keywordsign">-></span> elt<br>
|
|
<span class="keyword">val</span> choose : set <span class="keywordsign">-></span> elt<br>
|
|
<span class="keyword">val</span> split : elt <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set * bool * set<br>
|
|
<span class="keyword">val</span> of_seq : elt t <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> to_seq : set <span class="keywordsign">-></span> elt 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">X</span> : <span class="constructor">Set</span>.<span class="constructor">OrderedType</span>) <span class="keywordsign">-></span><br>
|
|
<span class="keyword">sig</span><br>
|
|
<span class="keyword">type</span> set<br>
|
|
<span class="keyword">type</span> elt = <span class="constructor">X</span>.t<br>
|
|
<span class="keyword">val</span> empty : set<br>
|
|
<span class="keyword">val</span> is_empty : set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> mem : elt <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> add : elt <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> singleton : elt <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> remove : elt <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> union : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> inter : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> diff : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> compare : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> int<br>
|
|
<span class="keyword">val</span> equal : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> subset : set <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> iter : (elt <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> fold : (elt <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> set <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 : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> exists : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> filter : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> partition : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set * set<br>
|
|
<span class="keyword">val</span> cardinal : set <span class="keywordsign">-></span> int<br>
|
|
<span class="keyword">val</span> elements : set <span class="keywordsign">-></span> elt list<br>
|
|
<span class="keyword">val</span> min_elt : set <span class="keywordsign">-></span> elt<br>
|
|
<span class="keyword">val</span> max_elt : set <span class="keywordsign">-></span> elt<br>
|
|
<span class="keyword">val</span> choose : set <span class="keywordsign">-></span> elt<br>
|
|
<span class="keyword">val</span> split : elt <span class="keywordsign">-></span> set <span class="keywordsign">-></span> set * bool * set<br>
|
|
<span class="keyword">val</span> of_seq : elt t <span class="keywordsign">-></span> set<br>
|
|
<span class="keyword">val</span> to_seq : set <span class="keywordsign">-></span> elt t<br>
|
|
<span class="keyword">end</span><br>
|
|
<span class="keyword">end</span><br>
|
|
<span class="keyword">module</span> <span class="constructor">Map</span> :<br>
|
|
<span class="keyword">sig</span><br>
|
|
<span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">S</span> =<br>
|
|
<span class="keyword">sig</span><br>
|
|
<span class="keyword">type</span> +<span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">type</span> key<br>
|
|
<span class="keyword">val</span> empty : <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> mem : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> add : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> singleton : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> remove : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> merge :<br>
|
|
(key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a option <span class="keywordsign">-></span> <span class="keywordsign">'</span>b option <span class="keywordsign">-></span> <span class="keywordsign">'</span>c option) <span class="keywordsign">-></span><br>
|
|
<span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>b map <span class="keywordsign">-></span> <span class="keywordsign">'</span>c map<br>
|
|
<span class="keyword">val</span> compare : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> int<br>
|
|
<span class="keyword">val</span> equal : (<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>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> iter : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> fold : (key <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 map <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br>
|
|
<span class="keyword">val</span> for_all : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> exists : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> filter : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> partition : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map * <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> int<br>
|
|
<span class="keyword">val</span> bindings : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> (key * <span class="keywordsign">'</span>a) list<br>
|
|
<span class="keyword">val</span> min_binding : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br>
|
|
<span class="keyword">val</span> max_binding : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br>
|
|
<span class="keyword">val</span> choose : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br>
|
|
<span class="keyword">val</span> split : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map * <span class="keywordsign">'</span>a option * <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> find : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br>
|
|
<span class="keyword">val</span> map : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>b map<br>
|
|
<span class="keyword">val</span> mapi : (key <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>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>b map<br>
|
|
<span class="keyword">val</span> to_seq : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.<span class="constructor">Map</span>.<span class="constructor">S</span>.map <span class="keywordsign">-></span> (key * <span class="keywordsign">'</span>a) <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> of_seq : (key * <span class="keywordsign">'</span>a) <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.<span class="constructor">Map</span>.<span class="constructor">S</span>.map<br>
|
|
<span class="keyword">val</span> keys : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.<span class="constructor">Map</span>.<span class="constructor">S</span>.map <span class="keywordsign">-></span> key <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> values : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.<span class="constructor">Map</span>.<span class="constructor">S</span>.map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">end</span><br>
|
|
<span class="keyword">module</span> <span class="constructor">Adapt</span> :<br>
|
|
<span class="keyword">functor</span> (<span class="constructor">M</span> : <span class="constructor">Map</span>.<span class="constructor">S</span>) <span class="keywordsign">-></span><br>
|
|
<span class="keyword">sig</span><br>
|
|
<span class="keyword">type</span> <span class="keywordsign">'</span>a map = <span class="keywordsign">'</span>a <span class="constructor">M</span>.t<br>
|
|
<span class="keyword">type</span> key = <span class="constructor">M</span>.key<br>
|
|
<span class="keyword">val</span> empty : <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> mem : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> add : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> singleton : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> remove : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> merge :<br>
|
|
(key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a option <span class="keywordsign">-></span> <span class="keywordsign">'</span>b option <span class="keywordsign">-></span> <span class="keywordsign">'</span>c option) <span class="keywordsign">-></span><br>
|
|
<span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>b map <span class="keywordsign">-></span> <span class="keywordsign">'</span>c map<br>
|
|
<span class="keyword">val</span> compare : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> int<br>
|
|
<span class="keyword">val</span> equal : (<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>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> iter : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> fold : (key <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 map <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br>
|
|
<span class="keyword">val</span> for_all : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> exists : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> filter : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> partition : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map * <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> int<br>
|
|
<span class="keyword">val</span> bindings : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> (key * <span class="keywordsign">'</span>a) list<br>
|
|
<span class="keyword">val</span> min_binding : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br>
|
|
<span class="keyword">val</span> max_binding : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br>
|
|
<span class="keyword">val</span> choose : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br>
|
|
<span class="keyword">val</span> split : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map * <span class="keywordsign">'</span>a option * <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> find : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br>
|
|
<span class="keyword">val</span> map : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>b map<br>
|
|
<span class="keyword">val</span> mapi : (key <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>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>b map<br>
|
|
<span class="keyword">val</span> to_seq : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> (key * <span class="keywordsign">'</span>a) t<br>
|
|
<span class="keyword">val</span> of_seq : (key * <span class="keywordsign">'</span>a) t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> keys : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> key t<br>
|
|
<span class="keyword">val</span> values : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a 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">V</span> : <span class="constructor">Map</span>.<span class="constructor">OrderedType</span>) <span class="keywordsign">-></span><br>
|
|
<span class="keyword">sig</span><br>
|
|
<span class="keyword">type</span> +<span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">type</span> key = <span class="constructor">V</span>.t<br>
|
|
<span class="keyword">val</span> empty : <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> mem : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> add : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> singleton : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> remove : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> merge :<br>
|
|
(key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a option <span class="keywordsign">-></span> <span class="keywordsign">'</span>b option <span class="keywordsign">-></span> <span class="keywordsign">'</span>c option) <span class="keywordsign">-></span><br>
|
|
<span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>b map <span class="keywordsign">-></span> <span class="keywordsign">'</span>c map<br>
|
|
<span class="keyword">val</span> compare : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> int<br>
|
|
<span class="keyword">val</span> equal : (<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>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> iter : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">val</span> fold : (key <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 map <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br>
|
|
<span class="keyword">val</span> for_all : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> exists : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> bool<br>
|
|
<span class="keyword">val</span> filter : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> partition : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map * <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> int<br>
|
|
<span class="keyword">val</span> bindings : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> (key * <span class="keywordsign">'</span>a) list<br>
|
|
<span class="keyword">val</span> min_binding : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br>
|
|
<span class="keyword">val</span> max_binding : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br>
|
|
<span class="keyword">val</span> choose : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br>
|
|
<span class="keyword">val</span> split : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map * <span class="keywordsign">'</span>a option * <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> find : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br>
|
|
<span class="keyword">val</span> map : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>b map<br>
|
|
<span class="keyword">val</span> mapi : (key <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>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>b map<br>
|
|
<span class="keyword">val</span> to_seq : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> (key * <span class="keywordsign">'</span>a) t<br>
|
|
<span class="keyword">val</span> of_seq : (key * <span class="keywordsign">'</span>a) t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a map<br>
|
|
<span class="keyword">val</span> keys : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> key t<br>
|
|
<span class="keyword">val</span> values : <span class="keywordsign">'</span>a map <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br>
|
|
<span class="keyword">end</span><br>
|
|
<span class="keyword">end</span><br>
|
|
<span class="keyword">val</span> random_int : int <span class="keywordsign">-></span> int <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> random_bool : bool <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> random_float : float <span class="keywordsign">-></span> float <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> random_array : <span class="keywordsign">'</span>a array <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> random_list : <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">module</span> <span class="constructor">TypeClass</span> :<br>
|
|
<span class="keyword">sig</span><br>
|
|
<span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) sequenceable = {<br>
|
|
to_seq : <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t;<br>
|
|
of_seq : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b;<br>
|
|
}<br>
|
|
<span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) addable = { empty : <span class="keywordsign">'</span>b; add : <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b; }<br>
|
|
<span class="keyword">type</span> <span class="keywordsign">'</span>a monoid = (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>a) <span class="constructor">Sequence</span>.<span class="constructor">TypeClass</span>.addable<br>
|
|
<span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) iterable = { iter : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> unit; }<br>
|
|
<span class="keyword">val</span> sequenceable : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t) <span class="constructor">Sequence</span>.<span class="constructor">TypeClass</span>.sequenceable<br>
|
|
<span class="keyword">val</span> iterable : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t) <span class="constructor">Sequence</span>.<span class="constructor">TypeClass</span>.iterable<br>
|
|
<span class="keyword">val</span> monoid : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="constructor">Sequence</span>.<span class="constructor">TypeClass</span>.monoid<br>
|
|
<span class="keyword">val</span> of_iterable :<br>
|
|
(<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.<span class="constructor">TypeClass</span>.iterable <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> to_addable :<br>
|
|
(<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Sequence</span>.<span class="constructor">TypeClass</span>.addable <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br>
|
|
<span class="keyword">end</span><br>
|
|
<span class="keyword">module</span> <span class="constructor">Infix</span> :<br>
|
|
<span class="keyword">sig</span><br>
|
|
<span class="keyword">val</span> ( -- ) : int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">val</span> ( |> ) : <span class="keywordsign">'</span>a <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<br>
|
|
<span class="keyword">val</span> ( @@ ) : <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t<br>
|
|
<span class="keyword">end</span><br>
|
|
<span class="keyword">val</span> pp_seq :<br>
|
|
?sep:string <span class="keywordsign">-></span><br>
|
|
(<span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span><br>
|
|
<span class="constructor">Format</span>.formatter <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Sequence</span>.t <span class="keywordsign">-></span> unit<br>
|
|
<span class="keyword">end</span></code></body></html> |