<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="React" rel="Chapter" href="React.html"><title>React.S</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a t = <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> const : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> create : ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal * (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit)<br> <span class="keyword">val</span> value : <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> eq_fun : <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) option<br> <span class="keyword">val</span> stop : <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> equal :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> trace :<br> ?iff:bool <span class="constructor">React</span>.<span class="constructor">S</span>.t <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> hold :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> app :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> map :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> filter :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> fmap :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a option) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> diff : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.event<br> <span class="keyword">val</span> changes : <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.event<br> <span class="keyword">val</span> sample :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.event <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="constructor">React</span>.event<br> <span class="keyword">val</span> when_ :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> bool <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> dismiss :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b <span class="constructor">React</span>.event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> accum :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="constructor">React</span>.event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> fold :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> merge :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> switch :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="constructor">React</span>.event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> fix :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal * <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> l1 :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> l2 :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> l3 :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> l4 :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>c <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> l5 :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="keywordsign">-></span> <span class="keywordsign">'</span>f <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>c <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>d <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>f <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> l6 :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="keywordsign">-></span> <span class="keywordsign">'</span>f <span class="keywordsign">-></span> <span class="keywordsign">'</span>g <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>c <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>d <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>e <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>f <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>g <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">module</span> <span class="constructor">Bool</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">val</span> not : bool <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( <span class="keywordsign">&&</span> ) :<br> bool <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( <span class="keywordsign">||</span> ) :<br> bool <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool <span class="constructor">React</span>.signal<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Int</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">val</span> ( <span class="keywordsign">~-</span> ) : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> succ : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> pred : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( + ) : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( - ) : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( * ) : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( <span class="keyword">mod</span> ) : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> abs : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> max_int : int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> min_int : int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( <span class="keyword">land</span> ) : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( <span class="keyword">lor</span> ) : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( <span class="keyword">lxor</span> ) : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> lnot : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( <span class="keyword">lsl</span> ) : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( <span class="keyword">lsr</span> ) : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( <span class="keyword">asr</span> ) : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Float</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">val</span> ( <span class="keywordsign">~-.</span> ) : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( +. ) :<br> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( -. ) :<br> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( *. ) :<br> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( /. ) :<br> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( ** ) :<br> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> sqrt : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> exp : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> log : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> log10 : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> cos : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> sin : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> tan : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> acos : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> asin : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> atan : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> atan2 :<br> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> cosh : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> sinh : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> tanh : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ceil : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> floor : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> abs_float : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> mod_float :<br> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> frexp : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> (float * int) <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ldexp :<br> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> modf : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> (float * float) <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> float : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> float_of_int : int <span class="constructor">React</span>.signal <span class="keywordsign">-></span> float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> truncate : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> int_of_float : float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> infinity : float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> neg_infinity : float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> nan : float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> max_float : float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> min_float : float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> epsilon_float : float <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> classify_float :<br> float <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="constructor">Pervasives</span>.fpclass <span class="constructor">React</span>.signal<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Pair</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">val</span> pair :<br> ?eq:(<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> fst :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> snd :<br> ?eq:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> (<span class="keywordsign">'</span>b * <span class="keywordsign">'</span>a) <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Compare</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">val</span> ( = ) : <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( <> ) : <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( < ) : <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( > ) : <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( <= ) : <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( >= ) : <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> compare : <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> int <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( == ) : <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> ( != ) : <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool <span class="constructor">React</span>.signal<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">EqType</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> equal : <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">EqType</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">EqType</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">S</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a v<br> <span class="keyword">val</span> create :<br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal * (<span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span> unit)<br> <span class="keyword">val</span> equal :<br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> hold :<br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> app :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v) <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> map :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> filter :<br> (<span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> fmap :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v option) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> when_ :<br> bool <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> dismiss :<br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.event <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> accum :<br> (<span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v) <span class="constructor">React</span>.event <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> fold :<br> (<span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> merge :<br> (<span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> switch :<br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal <span class="constructor">React</span>.event <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> fix :<br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal * <span class="keywordsign">'</span>b) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> l1 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> l2 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> l3 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> l4 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>c <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> l5 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="keywordsign">-></span> <span class="keywordsign">'</span>f <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>c <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>d <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>f <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">val</span> l6 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="keywordsign">-></span> <span class="keywordsign">'</span>f <span class="keywordsign">-></span> <span class="keywordsign">'</span>g <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>c <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>d <span class="constructor">React</span>.signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>e <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>f <span class="constructor">React</span>.signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>g <span class="constructor">React</span>.<span class="constructor">S</span>.<span class="constructor">S</span>.v <span class="constructor">React</span>.signal<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">Eq</span> : <span class="constructor">EqType</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a v = <span class="keywordsign">'</span>a <span class="constructor">Eq</span>.t<br> <span class="keyword">val</span> create : <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal * (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> unit)<br> <span class="keyword">val</span> equal : <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> hold : <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> app : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v) signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> map : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> filter : (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> fmap : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v option) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> when_ : bool signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> dismiss : <span class="keywordsign">'</span>a event <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> accum : (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v) event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> merge :<br> (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> switch : <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> fix : <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal * <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> l1 : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> l2 : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c v signal<br> <span class="keyword">val</span> l3 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d v signal<br> <span class="keyword">val</span> l4 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e v signal<br> <span class="keyword">val</span> l5 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="keywordsign">-></span> <span class="keywordsign">'</span>f v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>f v signal<br> <span class="keyword">val</span> l6 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="keywordsign">-></span> <span class="keywordsign">'</span>f <span class="keywordsign">-></span> <span class="keywordsign">'</span>g v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>f signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>g v signal<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Special</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="constructor">Sb</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a v = bool<br> <span class="keyword">val</span> create : <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal * (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> unit)<br> <span class="keyword">val</span> equal : <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> hold : <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> app : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v) signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> map : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> filter : (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> fmap : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v option) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> when_ : bool signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> dismiss : <span class="keywordsign">'</span>a event <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> accum : (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v) event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> merge :<br> (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> switch : <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> fix : <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal * <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> l1 : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> l2 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c v signal<br> <span class="keyword">val</span> l3 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d v signal<br> <span class="keyword">val</span> l4 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e v signal<br> <span class="keyword">val</span> l5 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="keywordsign">-></span> <span class="keywordsign">'</span>f v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>f v signal<br> <span class="keyword">val</span> l6 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="keywordsign">-></span> <span class="keywordsign">'</span>f <span class="keywordsign">-></span> <span class="keywordsign">'</span>g v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>f signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>g v signal<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Si</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a v = int<br> <span class="keyword">val</span> create : <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal * (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> unit)<br> <span class="keyword">val</span> equal : <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> hold : <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> app : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v) signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> map : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> filter : (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> fmap : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v option) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> when_ : bool signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> dismiss : <span class="keywordsign">'</span>a event <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> accum : (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v) event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> merge :<br> (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> switch : <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> fix : <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal * <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> l1 : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> l2 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c v signal<br> <span class="keyword">val</span> l3 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d v signal<br> <span class="keyword">val</span> l4 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e v signal<br> <span class="keyword">val</span> l5 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="keywordsign">-></span> <span class="keywordsign">'</span>f v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>f v signal<br> <span class="keyword">val</span> l6 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="keywordsign">-></span> <span class="keywordsign">'</span>f <span class="keywordsign">-></span> <span class="keywordsign">'</span>g v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>f signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>g v signal<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Sf</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a v = float<br> <span class="keyword">val</span> create : <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal * (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> unit)<br> <span class="keyword">val</span> equal : <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> hold : <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> app : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v) signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> map : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> filter : (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> fmap : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v option) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> when_ : bool signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> dismiss : <span class="keywordsign">'</span>a event <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> accum : (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v) event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> fold : (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> merge :<br> (<span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> switch : <span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal event <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal<br> <span class="keyword">val</span> fix : <span class="keywordsign">'</span>a v <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a v signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>a v signal * <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> l1 : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b v signal<br> <span class="keyword">val</span> l2 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c v) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c v signal<br> <span class="keyword">val</span> l3 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d v signal<br> <span class="keyword">val</span> l4 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e v signal<br> <span class="keyword">val</span> l5 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="keywordsign">-></span> <span class="keywordsign">'</span>f v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>f v signal<br> <span class="keyword">val</span> l6 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>d <span class="keywordsign">-></span> <span class="keywordsign">'</span>e <span class="keywordsign">-></span> <span class="keywordsign">'</span>f <span class="keywordsign">-></span> <span class="keywordsign">'</span>g v) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>b signal <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>c signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>d signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>e signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>f signal <span class="keywordsign">-></span> <span class="keywordsign">'</span>g v signal<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">end</span></code></body></html>