sig   type 'a t = 'React.signal   val const : '-> 'React.signal   val create :     ?eq:('-> '-> bool) ->     '-> 'React.signal * (?step:React.step -> '-> unit)   val value : 'React.signal -> 'a   val retain : 'React.signal -> (unit -> unit) -> [ `R of unit -> unit ]   val eq_fun : 'React.signal -> ('-> '-> bool) option   val stop : ?strong:bool -> 'React.signal -> unit   val equal :     ?eq:('-> '-> bool) -> 'React.signal -> 'React.signal -> bool   val trace :     ?iff:bool React.S.t -> ('-> unit) -> 'React.signal -> 'React.signal   val hold :     ?eq:('-> '-> bool) -> '-> 'React.event -> 'React.signal   val app :     ?eq:('-> '-> bool) ->     ('-> 'b) React.signal -> 'React.signal -> 'React.signal   val map :     ?eq:('-> '-> bool) ->     ('-> 'b) -> 'React.signal -> 'React.signal   val filter :     ?eq:('-> '-> bool) ->     ('-> bool) -> '-> 'React.signal -> 'React.signal   val fmap :     ?eq:('-> '-> bool) ->     ('-> 'b option) -> '-> 'React.signal -> 'React.signal   val diff : ('-> '-> 'b) -> 'React.signal -> 'React.event   val changes : 'React.signal -> 'React.event   val sample :     ('-> '-> 'c) -> 'React.event -> 'React.signal -> 'React.event   val on :     ?eq:('-> '-> bool) ->     bool React.signal -> '-> 'React.signal -> 'React.signal   val when_ :     ?eq:('-> '-> bool) ->     bool React.signal -> '-> 'React.signal -> 'React.signal   val dismiss :     ?eq:('-> '-> bool) ->     'React.event -> '-> 'React.signal -> 'React.signal   val accum :     ?eq:('-> '-> bool) -> ('-> 'a) React.event -> '-> 'React.signal   val fold :     ?eq:('-> '-> bool) ->     ('-> '-> 'a) -> '-> 'React.event -> 'React.signal   val merge :     ?eq:('-> '-> bool) ->     ('-> '-> 'a) -> '-> 'React.signal list -> 'React.signal   val switch :     ?eq:('-> '-> bool) -> 'React.signal React.signal -> 'React.signal   val bind :     ?eq:('-> '-> bool) ->     'React.signal -> ('-> 'React.signal) -> 'React.signal   val fix :     ?eq:('-> '-> bool) ->     '-> ('React.signal -> 'React.signal * 'b) -> 'b   val l1 :     ?eq:('-> '-> bool) ->     ('-> 'b) -> 'React.signal -> 'React.signal   val l2 :     ?eq:('-> '-> bool) ->     ('-> '-> 'c) -> 'React.signal -> 'React.signal -> 'React.signal   val l3 :     ?eq:('-> '-> bool) ->     ('-> '-> '-> 'd) ->     'React.signal -> 'React.signal -> 'React.signal -> 'React.signal   val l4 :     ?eq:('-> '-> bool) ->     ('-> '-> '-> '-> 'e) ->     'React.signal ->     'React.signal -> 'React.signal -> 'React.signal -> 'React.signal   val l5 :     ?eq:('-> '-> bool) ->     ('-> '-> '-> '-> '-> 'f) ->     'React.signal ->     'React.signal ->     'React.signal -> 'React.signal -> 'React.signal -> 'React.signal   val l6 :     ?eq:('-> '-> bool) ->     ('-> '-> '-> '-> '-> '-> 'g) ->     'React.signal ->     'React.signal ->     'React.signal ->     'React.signal -> 'React.signal -> 'React.signal -> 'React.signal   module Bool :     sig       val zero : bool React.signal       val one : bool React.signal       val not : bool React.signal -> bool React.signal       val ( && ) :         bool React.signal -> bool React.signal -> bool React.signal       val ( || ) :         bool React.signal -> bool React.signal -> bool React.signal       val edge : bool React.signal -> bool React.event       val rise : bool React.signal -> unit React.event       val fall : bool React.signal -> unit React.event       val flip : bool -> 'React.event -> bool React.signal     end   module Int :     sig       val zero : int React.signal       val one : int React.signal       val minus_one : int React.signal       val ( ~- ) : int React.signal -> int React.signal       val succ : int React.signal -> int React.signal       val pred : int React.signal -> int React.signal       val ( + ) : int React.signal -> int React.signal -> int React.signal       val ( - ) : int React.signal -> int React.signal -> int React.signal       val ( * ) : int React.signal -> int React.signal -> int React.signal       val ( mod ) : int React.signal -> int React.signal -> int React.signal       val abs : int React.signal -> int React.signal       val max_int : int React.signal       val min_int : int React.signal       val ( land ) : int React.signal -> int React.signal -> int React.signal       val ( lor ) : int React.signal -> int React.signal -> int React.signal       val ( lxor ) : int React.signal -> int React.signal -> int React.signal       val lnot : int React.signal -> int React.signal       val ( lsl ) : int React.signal -> int React.signal -> int React.signal       val ( lsr ) : int React.signal -> int React.signal -> int React.signal       val ( asr ) : int React.signal -> int React.signal -> int React.signal     end   module Float :     sig       val zero : float React.signal       val one : float React.signal       val minus_one : float React.signal       val ( ~-. ) : float React.signal -> float React.signal       val ( +. ) :         float React.signal -> float React.signal -> float React.signal       val ( -. ) :         float React.signal -> float React.signal -> float React.signal       val ( *. ) :         float React.signal -> float React.signal -> float React.signal       val ( /. ) :         float React.signal -> float React.signal -> float React.signal       val ( ** ) :         float React.signal -> float React.signal -> float React.signal       val sqrt : float React.signal -> float React.signal       val exp : float React.signal -> float React.signal       val log : float React.signal -> float React.signal       val log10 : float React.signal -> float React.signal       val cos : float React.signal -> float React.signal       val sin : float React.signal -> float React.signal       val tan : float React.signal -> float React.signal       val acos : float React.signal -> float React.signal       val asin : float React.signal -> float React.signal       val atan : float React.signal -> float React.signal       val atan2 :         float React.signal -> float React.signal -> float React.signal       val cosh : float React.signal -> float React.signal       val sinh : float React.signal -> float React.signal       val tanh : float React.signal -> float React.signal       val ceil : float React.signal -> float React.signal       val floor : float React.signal -> float React.signal       val abs_float : float React.signal -> float React.signal       val mod_float :         float React.signal -> float React.signal -> float React.signal       val frexp : float React.signal -> (float * int) React.signal       val ldexp :         float React.signal -> int React.signal -> float React.signal       val modf : float React.signal -> (float * float) React.signal       val float : int React.signal -> float React.signal       val float_of_int : int React.signal -> float React.signal       val truncate : float React.signal -> int React.signal       val int_of_float : float React.signal -> int React.signal       val infinity : float React.signal       val neg_infinity : float React.signal       val nan : float React.signal       val max_float : float React.signal       val min_float : float React.signal       val epsilon_float : float React.signal       val classify_float :         float React.signal -> Pervasives.fpclass React.signal     end   module Pair :     sig       val pair :         ?eq:('a * '-> 'a * '-> bool) ->         'React.signal -> 'React.signal -> ('a * 'b) React.signal       val fst :         ?eq:('-> '-> bool) -> ('a * 'b) React.signal -> 'React.signal       val snd :         ?eq:('-> '-> bool) -> ('b * 'a) React.signal -> 'React.signal     end   module Option :     sig       val none : 'a option React.signal       val some : 'React.signal -> 'a option React.signal       val value :         ?eq:('-> '-> bool) ->         default:[ `Always of 'React.signal | `Init of 'React.signal ] ->         'a option React.signal -> 'React.signal     end   module Compare :     sig       val ( = ) : 'React.signal -> 'React.signal -> bool React.signal       val ( <> ) : 'React.signal -> 'React.signal -> bool React.signal       val ( < ) : 'React.signal -> 'React.signal -> bool React.signal       val ( > ) : 'React.signal -> 'React.signal -> bool React.signal       val ( <= ) : 'React.signal -> 'React.signal -> bool React.signal       val ( >= ) : 'React.signal -> 'React.signal -> bool React.signal       val compare : 'React.signal -> 'React.signal -> int React.signal       val ( == ) : 'React.signal -> 'React.signal -> bool React.signal       val ( != ) : 'React.signal -> 'React.signal -> bool React.signal     end   module type EqType =     sig       type 'a t       val equal : 'React.S.EqType.t -> 'React.S.EqType.t -> bool     end   module type S =     sig       type 'a v       val create :         'React.S.S.v ->         'React.S.S.v React.signal *         (?step:React.step -> 'React.S.S.v -> unit)       val equal :         'React.S.S.v React.signal -> 'React.S.S.v React.signal -> bool       val hold :         'React.S.S.v ->         'React.S.S.v React.event -> 'React.S.S.v React.signal       val app :         ('-> 'React.S.S.v) React.signal ->         'React.signal -> 'React.S.S.v React.signal       val map :         ('-> 'React.S.S.v) ->         'React.signal -> 'React.S.S.v React.signal       val filter :         ('React.S.S.v -> bool) ->         'React.S.S.v ->         'React.S.S.v React.signal -> 'React.S.S.v React.signal       val fmap :         ('-> 'React.S.S.v option) ->         'React.S.S.v -> 'React.signal -> 'React.S.S.v React.signal       val when_ :         bool React.signal ->         'React.S.S.v ->         'React.S.S.v React.signal -> 'React.S.S.v React.signal       val dismiss :         'React.event ->         'React.S.S.v ->         'React.S.S.v React.signal -> 'React.S.S.v React.signal       val accum :         ('React.S.S.v -> 'React.S.S.v) React.event ->         'React.S.S.v -> 'React.S.S.v React.signal       val fold :         ('React.S.S.v -> '-> 'React.S.S.v) ->         'React.S.S.v -> 'React.event -> 'React.S.S.v React.signal       val merge :         ('React.S.S.v -> '-> 'React.S.S.v) ->         'React.S.S.v -> 'React.signal list -> 'React.S.S.v React.signal       val switch :         'React.S.S.v React.signal React.signal ->         'React.S.S.v React.signal       val bind :         'React.signal ->         ('-> 'React.S.S.v React.signal) -> 'React.S.S.v React.signal       val fix :         'React.S.S.v ->         ('React.S.S.v React.signal -> 'React.S.S.v React.signal * 'b) ->         'b       val l1 :         ('-> 'React.S.S.v) ->         'React.signal -> 'React.S.S.v React.signal       val l2 :         ('-> '-> 'React.S.S.v) ->         'React.signal -> 'React.signal -> 'React.S.S.v React.signal       val l3 :         ('-> '-> '-> 'React.S.S.v) ->         'React.signal ->         'React.signal -> 'React.signal -> 'React.S.S.v React.signal       val l4 :         ('-> '-> '-> '-> 'React.S.S.v) ->         'React.signal ->         'React.signal ->         'React.signal -> 'React.signal -> 'React.S.S.v React.signal       val l5 :         ('-> '-> '-> '-> '-> 'React.S.S.v) ->         'React.signal ->         'React.signal ->         'React.signal ->         'React.signal -> 'React.signal -> 'React.S.S.v React.signal       val l6 :         ('-> '-> '-> '-> '-> '-> 'React.S.S.v) ->         'React.signal ->         'React.signal ->         'React.signal ->         'React.signal ->         'React.signal -> 'React.signal -> 'React.S.S.v React.signal     end   module Make :     functor (Eq : EqType->       sig         type 'a v = 'Eq.t         val create : 'a v -> 'a v signal * (?step:step -> 'a v -> unit)         val equal : 'a v signal -> 'a v signal -> bool         val hold : 'a v -> 'a v event -> 'a v signal         val app : ('-> 'b v) signal -> 'a signal -> 'b v signal         val map : ('-> 'b v) -> 'a signal -> 'b v signal         val filter : ('a v -> bool) -> 'a v -> 'a v signal -> 'a v signal         val fmap : ('-> 'b v option) -> 'b v -> 'a signal -> 'b v signal         val when_ : bool signal -> 'a v -> 'a v signal -> 'a v signal         val dismiss : 'b event -> 'a v -> 'a v signal -> 'a v signal         val accum : ('a v -> 'a v) event -> 'a v -> 'a v signal         val fold : ('a v -> '-> 'a v) -> 'a v -> 'b event -> 'a v signal         val merge :           ('a v -> '-> 'a v) -> 'a v -> 'b signal list -> 'a v signal         val switch : 'a v signal signal -> 'a v signal         val bind : 'b signal -> ('-> 'a v signal) -> 'a v signal         val fix : 'a v -> ('a v signal -> 'a v signal * 'b) -> 'b         val l1 : ('-> 'b v) -> 'a signal -> 'b v signal         val l2 : ('-> '-> 'c v) -> 'a signal -> 'b signal -> 'c v signal         val l3 :           ('-> '-> '-> 'd v) ->           'a signal -> 'b signal -> 'c signal -> 'd v signal         val l4 :           ('-> '-> '-> '-> 'e v) ->           'a signal -> 'b signal -> 'c signal -> 'd signal -> 'e v signal         val l5 :           ('-> '-> '-> '-> '-> 'f v) ->           'a signal ->           'b signal -> 'c signal -> 'd signal -> 'e signal -> 'f v signal         val l6 :           ('-> '-> '-> '-> '-> '-> 'g v) ->           'a signal ->           'b signal ->           'c signal -> 'd signal -> 'e signal -> 'f signal -> 'g v signal       end   module Special :     sig       module Sb :         sig           type 'a v = bool           val create : 'a v -> 'a v signal * (?step:step -> 'a v -> unit)           val equal : 'a v signal -> 'a v signal -> bool           val hold : 'a v -> 'a v event -> 'a v signal           val app : ('-> 'b v) signal -> 'a signal -> 'b v signal           val map : ('-> 'b v) -> 'a signal -> 'b v signal           val filter : ('a v -> bool) -> 'a v -> 'a v signal -> 'a v signal           val fmap : ('-> 'b v option) -> 'b v -> 'a signal -> 'b v signal           val when_ : bool signal -> 'a v -> 'a v signal -> 'a v signal           val dismiss : 'b event -> 'a v -> 'a v signal -> 'a v signal           val accum : ('a v -> 'a v) event -> 'a v -> 'a v signal           val fold : ('a v -> '-> 'a v) -> 'a v -> 'b event -> 'a v signal           val merge :             ('a v -> '-> 'a v) -> 'a v -> 'b signal list -> 'a v signal           val switch : 'a v signal signal -> 'a v signal           val bind : 'b signal -> ('-> 'a v signal) -> 'a v signal           val fix : 'a v -> ('a v signal -> 'a v signal * 'b) -> 'b           val l1 : ('-> 'b v) -> 'a signal -> 'b v signal           val l2 :             ('-> '-> 'c v) -> 'a signal -> 'b signal -> 'c v signal           val l3 :             ('-> '-> '-> 'd v) ->             'a signal -> 'b signal -> 'c signal -> 'd v signal           val l4 :             ('-> '-> '-> '-> 'e v) ->             'a signal -> 'b signal -> 'c signal -> 'd signal -> 'e v signal           val l5 :             ('-> '-> '-> '-> '-> 'f v) ->             'a signal ->             'b signal -> 'c signal -> 'd signal -> 'e signal -> 'f v signal           val l6 :             ('-> '-> '-> '-> '-> '-> 'g v) ->             'a signal ->             'b signal ->             'c signal -> 'd signal -> 'e signal -> 'f signal -> 'g v signal         end       module Si :         sig           type 'a v = int           val create : 'a v -> 'a v signal * (?step:step -> 'a v -> unit)           val equal : 'a v signal -> 'a v signal -> bool           val hold : 'a v -> 'a v event -> 'a v signal           val app : ('-> 'b v) signal -> 'a signal -> 'b v signal           val map : ('-> 'b v) -> 'a signal -> 'b v signal           val filter : ('a v -> bool) -> 'a v -> 'a v signal -> 'a v signal           val fmap : ('-> 'b v option) -> 'b v -> 'a signal -> 'b v signal           val when_ : bool signal -> 'a v -> 'a v signal -> 'a v signal           val dismiss : 'b event -> 'a v -> 'a v signal -> 'a v signal           val accum : ('a v -> 'a v) event -> 'a v -> 'a v signal           val fold : ('a v -> '-> 'a v) -> 'a v -> 'b event -> 'a v signal           val merge :             ('a v -> '-> 'a v) -> 'a v -> 'b signal list -> 'a v signal           val switch : 'a v signal signal -> 'a v signal           val bind : 'b signal -> ('-> 'a v signal) -> 'a v signal           val fix : 'a v -> ('a v signal -> 'a v signal * 'b) -> 'b           val l1 : ('-> 'b v) -> 'a signal -> 'b v signal           val l2 :             ('-> '-> 'c v) -> 'a signal -> 'b signal -> 'c v signal           val l3 :             ('-> '-> '-> 'd v) ->             'a signal -> 'b signal -> 'c signal -> 'd v signal           val l4 :             ('-> '-> '-> '-> 'e v) ->             'a signal -> 'b signal -> 'c signal -> 'd signal -> 'e v signal           val l5 :             ('-> '-> '-> '-> '-> 'f v) ->             'a signal ->             'b signal -> 'c signal -> 'd signal -> 'e signal -> 'f v signal           val l6 :             ('-> '-> '-> '-> '-> '-> 'g v) ->             'a signal ->             'b signal ->             'c signal -> 'd signal -> 'e signal -> 'f signal -> 'g v signal         end       module Sf :         sig           type 'a v = float           val create : 'a v -> 'a v signal * (?step:step -> 'a v -> unit)           val equal : 'a v signal -> 'a v signal -> bool           val hold : 'a v -> 'a v event -> 'a v signal           val app : ('-> 'b v) signal -> 'a signal -> 'b v signal           val map : ('-> 'b v) -> 'a signal -> 'b v signal           val filter : ('a v -> bool) -> 'a v -> 'a v signal -> 'a v signal           val fmap : ('-> 'b v option) -> 'b v -> 'a signal -> 'b v signal           val when_ : bool signal -> 'a v -> 'a v signal -> 'a v signal           val dismiss : 'b event -> 'a v -> 'a v signal -> 'a v signal           val accum : ('a v -> 'a v) event -> 'a v -> 'a v signal           val fold : ('a v -> '-> 'a v) -> 'a v -> 'b event -> 'a v signal           val merge :             ('a v -> '-> 'a v) -> 'a v -> 'b signal list -> 'a v signal           val switch : 'a v signal signal -> 'a v signal           val bind : 'b signal -> ('-> 'a v signal) -> 'a v signal           val fix : 'a v -> ('a v signal -> 'a v signal * 'b) -> 'b           val l1 : ('-> 'b v) -> 'a signal -> 'b v signal           val l2 :             ('-> '-> 'c v) -> 'a signal -> 'b signal -> 'c v signal           val l3 :             ('-> '-> '-> 'd v) ->             'a signal -> 'b signal -> 'c signal -> 'd v signal           val l4 :             ('-> '-> '-> '-> 'e v) ->             'a signal -> 'b signal -> 'c signal -> 'd signal -> 'e v signal           val l5 :             ('-> '-> '-> '-> '-> 'f v) ->             'a signal ->             'b signal -> 'c signal -> 'd signal -> 'e signal -> 'f v signal           val l6 :             ('-> '-> '-> '-> '-> '-> 'g v) ->             'a signal ->             'b signal ->             'c signal -> 'd signal -> 'e signal -> 'f signal -> 'g v signal         end     end end