`sig
type 'a t = 'a React.signal
val const : 'a -> 'a React.signal
val create :
?eq:('a -> 'a -> bool) ->
'a -> 'a React.signal * (?step:React.step -> 'a -> unit)
val value : 'a React.signal -> 'a
val retain : 'a React.signal -> (unit -> unit) -> [ `R of unit -> unit ]
val eq_fun : 'a React.signal -> ('a -> 'a -> bool) option
val stop : ?strong:bool -> 'a React.signal -> unit
val equal :
?eq:('a -> 'a -> bool) -> 'a React.signal -> 'a React.signal -> bool
val trace :
?iff:bool React.S.t -> ('a -> unit) -> 'a React.signal -> 'a React.signal
val hold :
?eq:('a -> 'a -> bool) -> 'a -> 'a React.event -> 'a React.signal
val app :
?eq:('b -> 'b -> bool) ->
('a -> 'b) React.signal -> 'a React.signal -> 'b React.signal
val map :
?eq:('b -> 'b -> bool) ->
('a -> 'b) -> 'a React.signal -> 'b React.signal
val filter :
?eq:('a -> 'a -> bool) ->
('a -> bool) -> 'a -> 'a React.signal -> 'a React.signal
val fmap :
?eq:('b -> 'b -> bool) ->
('a -> 'b option) -> 'b -> 'a React.signal -> 'b React.signal
val diff : ('a -> 'a -> 'b) -> 'a React.signal -> 'b React.event
val changes : 'a React.signal -> 'a React.event
val sample :
('b -> 'a -> 'c) -> 'b React.event -> 'a React.signal -> 'c React.event
val on :
?eq:('a -> 'a -> bool) ->
bool React.signal -> 'a -> 'a React.signal -> 'a React.signal
val when_ :
?eq:('a -> 'a -> bool) ->
bool React.signal -> 'a -> 'a React.signal -> 'a React.signal
val dismiss :
?eq:('a -> 'a -> bool) ->
'b React.event -> 'a -> 'a React.signal -> 'a React.signal
val accum :
?eq:('a -> 'a -> bool) -> ('a -> 'a) React.event -> 'a -> 'a React.signal
val fold :
?eq:('a -> 'a -> bool) ->
('a -> 'b -> 'a) -> 'a -> 'b React.event -> 'a React.signal
val merge :
?eq:('a -> 'a -> bool) ->
('a -> 'b -> 'a) -> 'a -> 'b React.signal list -> 'a React.signal
val switch :
?eq:('a -> 'a -> bool) -> 'a React.signal React.signal -> 'a React.signal
val bind :
?eq:('b -> 'b -> bool) ->
'a React.signal -> ('a -> 'b React.signal) -> 'b React.signal
val fix :
?eq:('a -> 'a -> bool) ->
'a -> ('a React.signal -> 'a React.signal * 'b) -> 'b
val l1 :
?eq:('b -> 'b -> bool) ->
('a -> 'b) -> 'a React.signal -> 'b React.signal
val l2 :
?eq:('c -> 'c -> bool) ->
('a -> 'b -> 'c) -> 'a React.signal -> 'b React.signal -> 'c React.signal
val l3 :
?eq:('d -> 'd -> bool) ->
('a -> 'b -> 'c -> 'd) ->
'a React.signal -> 'b React.signal -> 'c React.signal -> 'd React.signal
val l4 :
?eq:('e -> 'e -> bool) ->
('a -> 'b -> 'c -> 'd -> 'e) ->
'a React.signal ->
'b React.signal -> 'c React.signal -> 'd React.signal -> 'e React.signal
val l5 :
?eq:('f -> 'f -> bool) ->
('a -> 'b -> 'c -> 'd -> 'e -> 'f) ->
'a React.signal ->
'b React.signal ->
'c React.signal -> 'd React.signal -> 'e React.signal -> 'f React.signal
val l6 :
?eq:('g -> 'g -> bool) ->
('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g) ->
'a React.signal ->
'b React.signal ->
'c React.signal ->
'd React.signal -> 'e React.signal -> 'f React.signal -> 'g 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 -> 'a 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 * 'b -> 'a * 'b -> bool) ->
'a React.signal -> 'b React.signal -> ('a * 'b) React.signal
val fst :
?eq:('a -> 'a -> bool) -> ('a * 'b) React.signal -> 'a React.signal
val snd :
?eq:('a -> 'a -> bool) -> ('b * 'a) React.signal -> 'a React.signal
end
module Option :
sig
val none : 'a option React.signal
val some : 'a React.signal -> 'a option React.signal
val value :
?eq:('a -> 'a -> bool) ->
default:[ `Always of 'a React.signal | `Init of 'a React.signal ] ->
'a option React.signal -> 'a React.signal
end
module Compare :
sig
val ( = ) : 'a React.signal -> 'a React.signal -> bool React.signal
val ( <> ) : 'a React.signal -> 'a React.signal -> bool React.signal
val ( < ) : 'a React.signal -> 'a React.signal -> bool React.signal
val ( > ) : 'a React.signal -> 'a React.signal -> bool React.signal
val ( <= ) : 'a React.signal -> 'a React.signal -> bool React.signal
val ( >= ) : 'a React.signal -> 'a React.signal -> bool React.signal
val compare : 'a React.signal -> 'a React.signal -> int React.signal
val ( == ) : 'a React.signal -> 'a React.signal -> bool React.signal
val ( != ) : 'a React.signal -> 'a React.signal -> bool React.signal
end
module type EqType =
sig
type 'a t
val equal : 'a React.S.EqType.t -> 'a React.S.EqType.t -> bool
end
module type S =
sig
type 'a v
val create :
'a React.S.S.v ->
'a React.S.S.v React.signal *
(?step:React.step -> 'a React.S.S.v -> unit)
val equal :
'a React.S.S.v React.signal -> 'a React.S.S.v React.signal -> bool
val hold :
'a React.S.S.v ->
'a React.S.S.v React.event -> 'a React.S.S.v React.signal
val app :
('a -> 'b React.S.S.v) React.signal ->
'a React.signal -> 'b React.S.S.v React.signal
val map :
('a -> 'b React.S.S.v) ->
'a React.signal -> 'b React.S.S.v React.signal
val filter :
('a React.S.S.v -> bool) ->
'a React.S.S.v ->
'a React.S.S.v React.signal -> 'a React.S.S.v React.signal
val fmap :
('a -> 'b React.S.S.v option) ->
'b React.S.S.v -> 'a React.signal -> 'b React.S.S.v React.signal
val when_ :
bool React.signal ->
'a React.S.S.v ->
'a React.S.S.v React.signal -> 'a React.S.S.v React.signal
val dismiss :
'b React.event ->
'a React.S.S.v ->
'a React.S.S.v React.signal -> 'a React.S.S.v React.signal
val accum :
('a React.S.S.v -> 'a React.S.S.v) React.event ->
'a React.S.S.v -> 'a React.S.S.v React.signal
val fold :
('a React.S.S.v -> 'b -> 'a React.S.S.v) ->
'a React.S.S.v -> 'b React.event -> 'a React.S.S.v React.signal
val merge :
('a React.S.S.v -> 'b -> 'a React.S.S.v) ->
'a React.S.S.v -> 'b React.signal list -> 'a React.S.S.v React.signal
val switch :
'a React.S.S.v React.signal React.signal ->
'a React.S.S.v React.signal
val bind :
'b React.signal ->
('b -> 'a React.S.S.v React.signal) -> 'a React.S.S.v React.signal
val fix :
'a React.S.S.v ->
('a React.S.S.v React.signal -> 'a React.S.S.v React.signal * 'b) ->
'b
val l1 :
('a -> 'b React.S.S.v) ->
'a React.signal -> 'b React.S.S.v React.signal
val l2 :
('a -> 'b -> 'c React.S.S.v) ->
'a React.signal -> 'b React.signal -> 'c React.S.S.v React.signal
val l3 :
('a -> 'b -> 'c -> 'd React.S.S.v) ->
'a React.signal ->
'b React.signal -> 'c React.signal -> 'd React.S.S.v React.signal
val l4 :
('a -> 'b -> 'c -> 'd -> 'e React.S.S.v) ->
'a React.signal ->
'b React.signal ->
'c React.signal -> 'd React.signal -> 'e React.S.S.v React.signal
val l5 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f React.S.S.v) ->
'a React.signal ->
'b React.signal ->
'c React.signal ->
'd React.signal -> 'e React.signal -> 'f React.S.S.v React.signal
val l6 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g React.S.S.v) ->
'a React.signal ->
'b React.signal ->
'c React.signal ->
'd React.signal ->
'e React.signal -> 'f React.signal -> 'g React.S.S.v React.signal
end
module Make :
functor (Eq : EqType) ->
sig
type 'a v = 'a 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 : ('a -> 'b v) signal -> 'a signal -> 'b v signal
val map : ('a -> 'b v) -> 'a signal -> 'b v signal
val filter : ('a v -> bool) -> 'a v -> 'a v signal -> 'a v signal
val fmap : ('a -> '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 -> 'b -> 'a v) -> 'a v -> 'b event -> 'a v signal
val merge :
('a v -> 'b -> 'a v) -> 'a v -> 'b signal list -> 'a v signal
val switch : 'a v signal signal -> 'a v signal
val bind : 'b signal -> ('b -> 'a v signal) -> 'a v signal
val fix : 'a v -> ('a v signal -> 'a v signal * 'b) -> 'b
val l1 : ('a -> 'b v) -> 'a signal -> 'b v signal
val l2 : ('a -> 'b -> 'c v) -> 'a signal -> 'b signal -> 'c v signal
val l3 :
('a -> 'b -> 'c -> 'd v) ->
'a signal -> 'b signal -> 'c signal -> 'd v signal
val l4 :
('a -> 'b -> 'c -> 'd -> 'e v) ->
'a signal -> 'b signal -> 'c signal -> 'd signal -> 'e v signal
val l5 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f v) ->
'a signal ->
'b signal -> 'c signal -> 'd signal -> 'e signal -> 'f v signal
val l6 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f -> '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 : ('a -> 'b v) signal -> 'a signal -> 'b v signal
val map : ('a -> 'b v) -> 'a signal -> 'b v signal
val filter : ('a v -> bool) -> 'a v -> 'a v signal -> 'a v signal
val fmap : ('a -> '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 -> 'b -> 'a v) -> 'a v -> 'b event -> 'a v signal
val merge :
('a v -> 'b -> 'a v) -> 'a v -> 'b signal list -> 'a v signal
val switch : 'a v signal signal -> 'a v signal
val bind : 'b signal -> ('b -> 'a v signal) -> 'a v signal
val fix : 'a v -> ('a v signal -> 'a v signal * 'b) -> 'b
val l1 : ('a -> 'b v) -> 'a signal -> 'b v signal
val l2 :
('a -> 'b -> 'c v) -> 'a signal -> 'b signal -> 'c v signal
val l3 :
('a -> 'b -> 'c -> 'd v) ->
'a signal -> 'b signal -> 'c signal -> 'd v signal
val l4 :
('a -> 'b -> 'c -> 'd -> 'e v) ->
'a signal -> 'b signal -> 'c signal -> 'd signal -> 'e v signal
val l5 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f v) ->
'a signal ->
'b signal -> 'c signal -> 'd signal -> 'e signal -> 'f v signal
val l6 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f -> '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 : ('a -> 'b v) signal -> 'a signal -> 'b v signal
val map : ('a -> 'b v) -> 'a signal -> 'b v signal
val filter : ('a v -> bool) -> 'a v -> 'a v signal -> 'a v signal
val fmap : ('a -> '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 -> 'b -> 'a v) -> 'a v -> 'b event -> 'a v signal
val merge :
('a v -> 'b -> 'a v) -> 'a v -> 'b signal list -> 'a v signal
val switch : 'a v signal signal -> 'a v signal
val bind : 'b signal -> ('b -> 'a v signal) -> 'a v signal
val fix : 'a v -> ('a v signal -> 'a v signal * 'b) -> 'b
val l1 : ('a -> 'b v) -> 'a signal -> 'b v signal
val l2 :
('a -> 'b -> 'c v) -> 'a signal -> 'b signal -> 'c v signal
val l3 :
('a -> 'b -> 'c -> 'd v) ->
'a signal -> 'b signal -> 'c signal -> 'd v signal
val l4 :
('a -> 'b -> 'c -> 'd -> 'e v) ->
'a signal -> 'b signal -> 'c signal -> 'd signal -> 'e v signal
val l5 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f v) ->
'a signal ->
'b signal -> 'c signal -> 'd signal -> 'e signal -> 'f v signal
val l6 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f -> '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 : ('a -> 'b v) signal -> 'a signal -> 'b v signal
val map : ('a -> 'b v) -> 'a signal -> 'b v signal
val filter : ('a v -> bool) -> 'a v -> 'a v signal -> 'a v signal
val fmap : ('a -> '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 -> 'b -> 'a v) -> 'a v -> 'b event -> 'a v signal
val merge :
('a v -> 'b -> 'a v) -> 'a v -> 'b signal list -> 'a v signal
val switch : 'a v signal signal -> 'a v signal
val bind : 'b signal -> ('b -> 'a v signal) -> 'a v signal
val fix : 'a v -> ('a v signal -> 'a v signal * 'b) -> 'b
val l1 : ('a -> 'b v) -> 'a signal -> 'b v signal
val l2 :
('a -> 'b -> 'c v) -> 'a signal -> 'b signal -> 'c v signal
val l3 :
('a -> 'b -> 'c -> 'd v) ->
'a signal -> 'b signal -> 'c signal -> 'd v signal
val l4 :
('a -> 'b -> 'c -> 'd -> 'e v) ->
'a signal -> 'b signal -> 'c signal -> 'd signal -> 'e v signal
val l5 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f v) ->
'a signal ->
'b signal -> 'c signal -> 'd signal -> 'e signal -> 'f v signal
val l6 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g v) ->
'a signal ->
'b signal ->
'c signal -> 'd signal -> 'e signal -> 'f signal -> 'g v signal
end
end
end`