<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <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="Domain" rel="Chapter" href="Domain.html"> <link title="SetDomain" rel="Chapter" href="SetDomain.html"> <link title="Stak" rel="Chapter" href="Stak.html"> <link title="Data" rel="Chapter" href="Data.html"> <link title="Cstr" rel="Chapter" href="Cstr.html"> <link title="Var" rel="Chapter" href="Var.html"> <link title="Invariant" rel="Chapter" href="Invariant.html"> <link title="Reify" rel="Chapter" href="Reify.html"> <link title="Arith" rel="Chapter" href="Arith.html"> <link title="Conjunto" rel="Chapter" href="Conjunto.html"> <link title="Goals" rel="Chapter" href="Goals.html"> <link title="FdArray" rel="Chapter" href="FdArray.html"> <link title="Gcc" rel="Chapter" href="Gcc.html"> <link title="Alldiff" rel="Chapter" href="Alldiff.html"> <link title="Sorting" rel="Chapter" href="Sorting.html"> <link title="Interval" rel="Chapter" href="Interval.html"><title>Var</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">ATTR</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> domain<br> <span class="keyword">type</span> elt<br> <span class="keyword">type</span> event<br> <span class="keyword">val</span> dom : <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.domain<br> <span class="keyword">val</span> on_refine : <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.event<br> <span class="keyword">val</span> on_subst : <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.event<br> <span class="keyword">val</span> on_min : <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.event<br> <span class="keyword">val</span> on_max : <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.event<br> <span class="keyword">val</span> fprint : <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> min : <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.elt<br> <span class="keyword">val</span> max : <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.elt<br> <span class="keyword">val</span> member : <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.elt <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> id : <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> constraints_number : <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> size : <span class="constructor">Var</span>.<span class="constructor">ATTR</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Attr</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> domain = <span class="constructor">Domain</span>.t<br> <span class="keyword">type</span> elt = <span class="constructor">Domain</span>.elt<br> <span class="keyword">type</span> event<br> <span class="keyword">val</span> dom : t <span class="keywordsign">-></span> domain<br> <span class="keyword">val</span> on_refine : event<br> <span class="keyword">val</span> on_subst : event<br> <span class="keyword">val</span> on_min : event<br> <span class="keyword">val</span> on_max : event<br> <span class="keyword">val</span> fprint : out_channel <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> min : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> max : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> member : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> id : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> constraints_number : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> size : t <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">SetAttr</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> domain = <span class="constructor">SetDomain</span>.t<br> <span class="keyword">type</span> elt = <span class="constructor">SetDomain</span>.<span class="constructor">S</span>.t<br> <span class="keyword">type</span> event<br> <span class="keyword">val</span> dom : t <span class="keywordsign">-></span> domain<br> <span class="keyword">val</span> on_refine : event<br> <span class="keyword">val</span> on_subst : event<br> <span class="keyword">val</span> on_min : event<br> <span class="keyword">val</span> on_max : event<br> <span class="keyword">val</span> fprint : out_channel <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> min : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> max : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> member : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> id : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> constraints_number : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> size : t <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) concrete = <span class="constructor">Unk</span> <span class="keyword">of</span> <span class="keywordsign">'</span>a <span class="keywordsign">|</span> <span class="constructor">Val</span> <span class="keyword">of</span> <span class="keywordsign">'</span>b<br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">BASICFD</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> attr<br> <span class="keyword">type</span> domain<br> <span class="keyword">type</span> elt<br> <span class="keyword">type</span> event<br> <span class="keyword">val</span> create : ?name:string <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.domain <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t<br> <span class="keyword">val</span> interval :<br> ?name:string <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t<br> <span class="keyword">val</span> array :<br> ?name:string <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t array<br> <span class="keyword">val</span> elt : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t<br> <span class="keyword">val</span> is_var : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_bound : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> value :<br> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> (<span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.attr, <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt) <span class="constructor">Var</span>.concrete<br> <span class="keyword">val</span> min : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt<br> <span class="keyword">val</span> max : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt<br> <span class="keyword">val</span> min_max : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt * <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt<br> <span class="keyword">val</span> elt_value : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt<br> <span class="keyword">val</span> int_value : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt<br> <span class="keyword">val</span> size : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> member : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> id : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> name : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> compare : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> fprint : <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fprint_array :<br> <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t array <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> unify : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.domain <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine_low : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine_up : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine_low_up :<br> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> on_refine : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.event<br> <span class="keyword">val</span> on_subst : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.event<br> <span class="keyword">val</span> on_min : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.event<br> <span class="keyword">val</span> on_max : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.event<br> <span class="keyword">val</span> delay :<br> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.event list <span class="keywordsign">-></span><br> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> ?waking_id:int <span class="keywordsign">-></span> <span class="constructor">Cstr</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> int : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t<br> <span class="keyword">val</span> subst : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> unify_cstr : <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.t <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">BASICFD</span>.elt <span class="keywordsign">-></span> <span class="constructor">Cstr</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">FD</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> attr<br> <span class="keyword">type</span> domain<br> <span class="keyword">type</span> elt<br> <span class="keyword">type</span> event<br> <span class="keyword">val</span> create : ?name:string <span class="keywordsign">-></span> domain <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> interval : ?name:string <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> array : ?name:string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> t array<br> <span class="keyword">val</span> elt : elt <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> is_var : t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_bound : t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> value : t <span class="keywordsign">-></span> (attr, elt) concrete<br> <span class="keyword">val</span> min : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> max : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> min_max : t <span class="keywordsign">-></span> elt * elt<br> <span class="keyword">val</span> elt_value : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> int_value : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> size : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> member : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> id : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> name : t <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> fprint : out_channel <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fprint_array : out_channel <span class="keywordsign">-></span> t array <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> unify : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine : t <span class="keywordsign">-></span> domain <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine_low : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine_up : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine_low_up : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> on_refine : event<br> <span class="keyword">val</span> on_subst : event<br> <span class="keyword">val</span> on_min : event<br> <span class="keyword">val</span> on_max : event<br> <span class="keyword">val</span> delay : event list <span class="keywordsign">-></span> t <span class="keywordsign">-></span> ?waking_id:int <span class="keywordsign">-></span> <span class="constructor">Cstr</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> int : elt <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> subst : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> unify_cstr : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> <span class="constructor">Cstr</span>.t<br> <span class="keyword">val</span> remove : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> values : t <span class="keywordsign">-></span> elt list<br> <span class="keyword">val</span> iter : (elt <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Fd</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> attr = <span class="constructor">Attr</span>.t<br> <span class="keyword">type</span> domain = <span class="constructor">Domain</span>.t<br> <span class="keyword">type</span> elt = <span class="constructor">Domain</span>.elt<br> <span class="keyword">type</span> event = <span class="constructor">Attr</span>.event<br> <span class="keyword">val</span> create : ?name:string <span class="keywordsign">-></span> domain <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> interval : ?name:string <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> array : ?name:string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> t array<br> <span class="keyword">val</span> elt : elt <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> is_var : t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_bound : t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> value : t <span class="keywordsign">-></span> (attr, elt) concrete<br> <span class="keyword">val</span> min : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> max : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> min_max : t <span class="keywordsign">-></span> elt * elt<br> <span class="keyword">val</span> elt_value : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> int_value : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> size : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> member : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> id : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> name : t <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> fprint : out_channel <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fprint_array : out_channel <span class="keywordsign">-></span> t array <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> unify : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine : t <span class="keywordsign">-></span> domain <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine_low : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine_up : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine_low_up : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> on_refine : event<br> <span class="keyword">val</span> on_subst : event<br> <span class="keyword">val</span> on_min : event<br> <span class="keyword">val</span> on_max : event<br> <span class="keyword">val</span> delay : event list <span class="keywordsign">-></span> t <span class="keywordsign">-></span> ?waking_id:int <span class="keywordsign">-></span> <span class="constructor">Cstr</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> int : elt <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> subst : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> unify_cstr : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> <span class="constructor">Cstr</span>.t<br> <span class="keyword">val</span> remove : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> values : t <span class="keywordsign">-></span> elt list<br> <span class="keyword">val</span> iter : (elt <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">SetFd</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> attr = <span class="constructor">SetAttr</span>.t<br> <span class="keyword">type</span> domain = <span class="constructor">SetDomain</span>.t<br> <span class="keyword">type</span> elt = <span class="constructor">SetDomain</span>.<span class="constructor">S</span>.t<br> <span class="keyword">type</span> event = <span class="constructor">SetAttr</span>.event<br> <span class="keyword">val</span> create : ?name:string <span class="keywordsign">-></span> domain <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> interval : ?name:string <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> array : ?name:string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> t array<br> <span class="keyword">val</span> elt : elt <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> is_var : t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_bound : t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> value : t <span class="keywordsign">-></span> (attr, elt) concrete<br> <span class="keyword">val</span> min : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> max : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> min_max : t <span class="keywordsign">-></span> elt * elt<br> <span class="keyword">val</span> elt_value : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> int_value : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> size : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> member : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> id : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> name : t <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> fprint : out_channel <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fprint_array : out_channel <span class="keywordsign">-></span> t array <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> unify : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine : t <span class="keywordsign">-></span> domain <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine_low : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine_up : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> refine_low_up : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> on_refine : event<br> <span class="keyword">val</span> on_subst : event<br> <span class="keyword">val</span> on_min : event<br> <span class="keyword">val</span> on_max : event<br> <span class="keyword">val</span> delay : event list <span class="keywordsign">-></span> t <span class="keywordsign">-></span> ?waking_id:int <span class="keywordsign">-></span> <span class="constructor">Cstr</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> int : elt <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> subst : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> unify_cstr : t <span class="keywordsign">-></span> elt <span class="keywordsign">-></span> <span class="constructor">Cstr</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">type</span> concrete_fd = (<span class="constructor">Var</span>.<span class="constructor">Fd</span>.attr, <span class="constructor">Var</span>.<span class="constructor">Fd</span>.elt) <span class="constructor">Var</span>.concrete<br> <span class="keyword">val</span> delay :<br> <span class="constructor">Var</span>.<span class="constructor">Attr</span>.event list <span class="keywordsign">-></span> <span class="constructor">Var</span>.<span class="constructor">Fd</span>.t <span class="keywordsign">-></span> ?waking_id:int <span class="keywordsign">-></span> <span class="constructor">Cstr</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span></code></body></html>