<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 modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Reins" rel="Chapter" href="Reins.html"><title>Reins.Sets</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">Set_</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a elt_<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a set<br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem :<br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.elt_ <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> (bool, <span class="keywordsign">'</span>a) <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.result_<br> <span class="keyword">val</span> add :<br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.elt_ <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set<br> <span class="keyword">val</span> singleton : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set<br> <span class="keyword">val</span> remove :<br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.elt_ <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set<br> <span class="keyword">val</span> min_elt :<br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.elt_, <span class="keywordsign">'</span>a) <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.result_<br> <span class="keyword">val</span> max_elt :<br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.elt_, <span class="keywordsign">'</span>a) <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.result_<br> <span class="keyword">val</span> choose :<br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.elt_, <span class="keywordsign">'</span>a) <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.result_<br> <span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter :<br> (<span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.elt_ <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> union :<br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set<br> <span class="keyword">val</span> inter :<br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set<br> <span class="keyword">val</span> diff :<br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set<br> <span class="keyword">val</span> gen1 :<br> (?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.elt_) <span class="keywordsign">-></span><br> ?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set<br> <span class="keyword">val</span> well_formed : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> of_result : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.result_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> to_cursor : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_<br> <span class="keyword">val</span> from_cursor : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.set<br> <span class="keyword">val</span> at_top : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_left : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_right : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> move_up : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_<br> <span class="keyword">val</span> move_down_left :<br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_<br> <span class="keyword">val</span> move_down_right :<br> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_<br> <span class="keyword">val</span> went_left : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> went_right : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> has_value : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> get_value : <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Reins</span>.<span class="constructor">Sets</span>.<span class="constructor">Set_</span>.elt_<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">MonoSetSig</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> elt<br> <span class="keyword">type</span> cursor<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a result<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a elt_ = elt<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a set = t<br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ = <span class="keywordsign">'</span>a result<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (bool, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> add : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> singleton : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> remove : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> min_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> max_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> choose : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (<span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b elt_ <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>b set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> union : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> inter : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> diff : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> gen1 :<br> (?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_) <span class="keywordsign">-></span><br> ?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> well_formed : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> of_result : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a cursor_ = cursor<br> <span class="keyword">val</span> to_cursor : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> from_cursor : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> at_top : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> move_up : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> went_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> went_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> has_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> get_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_<br> <span class="keyword">val</span> to_string : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> string<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">MonoSetSigFn</span> =<br> <span class="keyword">functor</span> (<span class="constructor">C</span> : <span class="constructor">Types</span>.<span class="constructor">Mono</span>.<span class="constructor">Comparable</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> elt = <span class="constructor">C</span>.t<br> <span class="keyword">type</span> cursor<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a result<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a elt_ = elt<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a set = t<br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ = <span class="keywordsign">'</span>a result<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (bool, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> add : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> singleton : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> remove : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> min_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> max_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> choose : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (<span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b elt_ <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>b set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> union : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> inter : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> diff : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> gen1 :<br> (?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_) <span class="keywordsign">-></span><br> ?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> well_formed : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> of_result : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a cursor_ = cursor<br> <span class="keyword">val</span> to_cursor : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> from_cursor : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> at_top : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> move_up : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> went_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> went_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> has_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> get_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_<br> <span class="keyword">val</span> to_string : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> string<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">MonoSetSigFnStd</span> =<br> <span class="keyword">functor</span> (<span class="constructor">C</span> : <span class="constructor">Types</span>.<span class="constructor">Mono</span>.<span class="constructor">Comparable</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> elt = <span class="constructor">C</span>.t<br> <span class="keyword">type</span> cursor<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a result = <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a elt_ = elt<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a set = t<br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ = <span class="keywordsign">'</span>a result<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (bool, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> add : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> singleton : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> remove : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> min_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> max_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> choose : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (<span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b elt_ <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>b set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> union : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> inter : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> diff : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> gen1 :<br> (?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_) <span class="keywordsign">-></span><br> ?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> well_formed : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> of_result : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a cursor_ = cursor<br> <span class="keyword">val</span> to_cursor : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> from_cursor : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> at_top : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> move_up : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> went_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> went_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> has_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> get_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_<br> <span class="keyword">val</span> to_string : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> string<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">GenSetSig</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> elt<br> <span class="keyword">type</span> cursor<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a result<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a elt_ = elt<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a set = t<br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ = <span class="keywordsign">'</span>a result<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (bool, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> add : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> singleton : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> remove : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> min_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> max_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> choose : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (<span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b elt_ <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>b set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> union : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> inter : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> diff : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> gen1 :<br> (?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_) <span class="keywordsign">-></span><br> ?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> well_formed : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> of_result : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a cursor_ = cursor<br> <span class="keyword">val</span> to_cursor : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> from_cursor : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> at_top : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> move_up : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> went_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> went_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> has_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> get_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_<br> <span class="keyword">val</span> to_string : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> gen : ?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">GenSetSigFn</span> =<br> <span class="keyword">functor</span> (<span class="constructor">C</span> : <span class="constructor">Types</span>.<span class="constructor">Mono</span>.<span class="constructor">ArbitraryComparable</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> elt = <span class="constructor">C</span>.t<br> <span class="keyword">type</span> cursor<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a result<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a elt_ = elt<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a set = t<br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ = <span class="keywordsign">'</span>a result<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (bool, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> add : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> singleton : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> remove : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> min_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> max_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> choose : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (<span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b elt_ <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>b set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> union : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> inter : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> diff : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> gen1 :<br> (?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_) <span class="keywordsign">-></span><br> ?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> well_formed : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> of_result : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a cursor_ = cursor<br> <span class="keyword">val</span> to_cursor : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> from_cursor : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> at_top : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> move_up : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> went_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> went_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> has_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> get_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_<br> <span class="keyword">val</span> to_string : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> gen : ?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">GenSetSigFnStd</span> =<br> <span class="keyword">functor</span> (<span class="constructor">C</span> : <span class="constructor">Types</span>.<span class="constructor">Mono</span>.<span class="constructor">ArbitraryComparable</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> elt = <span class="constructor">C</span>.t<br> <span class="keyword">type</span> cursor<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a result = <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a elt_ = elt<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a set = t<br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ = <span class="keywordsign">'</span>a result<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (bool, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> add : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> singleton : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> remove : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> min_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> max_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> choose : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (<span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b elt_ <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>b set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> union : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> inter : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> diff : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> gen1 :<br> (?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_) <span class="keywordsign">-></span><br> ?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> well_formed : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> of_result : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a cursor_ = cursor<br> <span class="keyword">val</span> to_cursor : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> from_cursor : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> at_top : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> move_up : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> went_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> went_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> has_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> get_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_<br> <span class="keyword">val</span> to_string : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> gen : ?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">PolySetSig</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a t<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a cursor<br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a elt_ = <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a set = <span class="keywordsign">'</span>a t<br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ = (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (bool, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> add : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> singleton : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> remove : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> min_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> max_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> choose : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (<span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b elt_ <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>b set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> union : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> inter : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> diff : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> gen1 :<br> (?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_) <span class="keywordsign">-></span><br> ?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> well_formed : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> of_result : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a cursor_ = <span class="keywordsign">'</span>a cursor<br> <span class="keyword">val</span> to_cursor : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> from_cursor : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> at_top : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> move_up : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> went_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> went_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> has_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> get_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_<br> <span class="keyword">val</span> to_string : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> string) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> string<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">PolySetSigStd</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a t<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a cursor<br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result = <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a elt_ = <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a set = <span class="keywordsign">'</span>a t<br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ = (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (bool, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> add : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> singleton : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> remove : <span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> min_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> max_elt : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> choose : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a elt_, <span class="keywordsign">'</span>a) result_<br> <span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> compare : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (<span class="keywordsign">'</span>a elt_ <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b elt_ <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>b set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> union : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> inter : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> diff : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> gen1 :<br> (?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_) <span class="keywordsign">-></span><br> ?size:int <span class="keywordsign">-></span> <span class="constructor">Random</span>.<span class="constructor">State</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> well_formed : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> of_result : (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) result_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a cursor_ = <span class="keywordsign">'</span>a cursor<br> <span class="keyword">val</span> to_cursor : <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> from_cursor : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set<br> <span class="keyword">val</span> at_top : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> at_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> move_up : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> move_down_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a cursor_<br> <span class="keyword">val</span> went_left : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> went_right : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> has_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> get_value : <span class="keywordsign">'</span>a cursor_ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a elt_<br> <span class="keyword">val</span> to_string : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> string) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a set <span class="keywordsign">-></span> string<br> <span class="keyword">end</span><br> <span class="keyword">end</span></code></body></html>