sig
type 'a t = 'a React.signal
val const : 'a -> 'a React.signal
val create : ?eq:('a -> 'a -> bool) -> 'a -> 'a React.signal * ('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 : 'a React.signal -> unit
val equal :
?eq:('a -> 'a -> bool) -> 'a React.signal -> 'a React.signal -> bool
val trace :
?iff:bool 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 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 -> 'a React.signal React.event -> 'a 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 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
end
module Int :
sig
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 ( ~-. ) : 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 -> 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 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 t -> 'a t -> bool end
module type S =
sig
type 'a v
val create : 'a v -> 'a v React.signal * ('a v -> unit)
val equal : 'a v React.signal -> 'a v React.signal -> bool
val hold : 'a v -> 'a v React.event -> 'a v React.signal
val app :
('a -> 'b v) React.signal -> 'a React.signal -> 'b v React.signal
val map : ('a -> 'b v) -> 'a React.signal -> 'b v React.signal
val filter :
('a v -> bool) -> 'a v -> 'a v React.signal -> 'a v React.signal
val fmap :
('a -> 'b v option) -> 'b v -> 'a React.signal -> 'b v React.signal
val when_ :
bool React.signal -> 'a v -> 'a v React.signal -> 'a v React.signal
val dismiss :
'b React.event -> 'a v -> 'a v React.signal -> 'a v React.signal
val accum : ('a v -> 'a v) React.event -> 'a v -> 'a v React.signal
val fold :
('a v -> 'b -> 'a v) -> 'a v -> 'b React.event -> 'a v React.signal
val merge :
('a v -> 'b -> 'a v) ->
'a v -> 'b React.signal list -> 'a v React.signal
val switch :
'a v React.signal ->
'a v React.signal React.event -> 'a v React.signal
val fix : 'a v -> ('a v React.signal -> 'a v React.signal * 'b) -> 'b
val l1 : ('a -> 'b v) -> 'a React.signal -> 'b v React.signal
val l2 :
('a -> 'b -> 'c v) ->
'a React.signal -> 'b React.signal -> 'c v React.signal
val l3 :
('a -> 'b -> 'c -> 'd v) ->
'a React.signal ->
'b React.signal -> 'c React.signal -> 'd v React.signal
val l4 :
('a -> 'b -> 'c -> 'd -> 'e v) ->
'a React.signal ->
'b React.signal ->
'c React.signal -> 'd React.signal -> 'e v React.signal
val l5 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f v) ->
'a React.signal ->
'b React.signal ->
'c React.signal ->
'd React.signal -> 'e React.signal -> 'f v React.signal
val l6 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g v) ->
'a React.signal ->
'b React.signal ->
'c React.signal ->
'd React.signal ->
'e React.signal -> 'f React.signal -> 'g v React.signal
end
module Make :
functor (Eq : EqType) ->
sig
type 'a v = 'a Eq.t
val create : 'a v -> 'a v React.signal * ('a v -> unit)
val equal : 'a v React.signal -> 'a v React.signal -> bool
val hold : 'a v -> 'a v React.event -> 'a v React.signal
val app :
('a -> 'b v) React.signal -> 'a React.signal -> 'b v React.signal
val map : ('a -> 'b v) -> 'a React.signal -> 'b v React.signal
val filter :
('a v -> bool) -> 'a v -> 'a v React.signal -> 'a v React.signal
val fmap :
('a -> 'b v option) -> 'b v -> 'a React.signal -> 'b v React.signal
val when_ :
bool React.signal -> 'a v -> 'a v React.signal -> 'a v React.signal
val dismiss :
'b React.event -> 'a v -> 'a v React.signal -> 'a v React.signal
val accum : ('a v -> 'a v) React.event -> 'a v -> 'a v React.signal
val fold :
('a v -> 'b -> 'a v) -> 'a v -> 'b React.event -> 'a v React.signal
val merge :
('a v -> 'b -> 'a v) ->
'a v -> 'b React.signal list -> 'a v React.signal
val switch :
'a v React.signal ->
'a v React.signal React.event -> 'a v React.signal
val fix : 'a v -> ('a v React.signal -> 'a v React.signal * 'b) -> 'b
val l1 : ('a -> 'b v) -> 'a React.signal -> 'b v React.signal
val l2 :
('a -> 'b -> 'c v) ->
'a React.signal -> 'b React.signal -> 'c v React.signal
val l3 :
('a -> 'b -> 'c -> 'd v) ->
'a React.signal ->
'b React.signal -> 'c React.signal -> 'd v React.signal
val l4 :
('a -> 'b -> 'c -> 'd -> 'e v) ->
'a React.signal ->
'b React.signal ->
'c React.signal -> 'd React.signal -> 'e v React.signal
val l5 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f v) ->
'a React.signal ->
'b React.signal ->
'c React.signal ->
'd React.signal -> 'e React.signal -> 'f v React.signal
val l6 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g v) ->
'a React.signal ->
'b React.signal ->
'c React.signal ->
'd React.signal ->
'e React.signal -> 'f React.signal -> 'g v React.signal
end
module Special :
sig
module Sb :
sig
type 'a v = bool
val create : 'a v -> 'a v React.signal * ('a v -> unit)
val equal : 'a v React.signal -> 'a v React.signal -> bool
val hold : 'a v -> 'a v React.event -> 'a v React.signal
val app :
('a -> 'b v) React.signal -> 'a React.signal -> 'b v React.signal
val map : ('a -> 'b v) -> 'a React.signal -> 'b v React.signal
val filter :
('a v -> bool) -> 'a v -> 'a v React.signal -> 'a v React.signal
val fmap :
('a -> 'b v option) ->
'b v -> 'a React.signal -> 'b v React.signal
val when_ :
bool React.signal ->
'a v -> 'a v React.signal -> 'a v React.signal
val dismiss :
'b React.event -> 'a v -> 'a v React.signal -> 'a v React.signal
val accum : ('a v -> 'a v) React.event -> 'a v -> 'a v React.signal
val fold :
('a v -> 'b -> 'a v) ->
'a v -> 'b React.event -> 'a v React.signal
val merge :
('a v -> 'b -> 'a v) ->
'a v -> 'b React.signal list -> 'a v React.signal
val switch :
'a v React.signal ->
'a v React.signal React.event -> 'a v React.signal
val fix :
'a v -> ('a v React.signal -> 'a v React.signal * 'b) -> 'b
val l1 : ('a -> 'b v) -> 'a React.signal -> 'b v React.signal
val l2 :
('a -> 'b -> 'c v) ->
'a React.signal -> 'b React.signal -> 'c v React.signal
val l3 :
('a -> 'b -> 'c -> 'd v) ->
'a React.signal ->
'b React.signal -> 'c React.signal -> 'd v React.signal
val l4 :
('a -> 'b -> 'c -> 'd -> 'e v) ->
'a React.signal ->
'b React.signal ->
'c React.signal -> 'd React.signal -> 'e v React.signal
val l5 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f v) ->
'a React.signal ->
'b React.signal ->
'c React.signal ->
'd React.signal -> 'e React.signal -> 'f v React.signal
val l6 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g v) ->
'a React.signal ->
'b React.signal ->
'c React.signal ->
'd React.signal ->
'e React.signal -> 'f React.signal -> 'g v React.signal
end
module Si :
sig
type 'a v = int
val create : 'a v -> 'a v React.signal * ('a v -> unit)
val equal : 'a v React.signal -> 'a v React.signal -> bool
val hold : 'a v -> 'a v React.event -> 'a v React.signal
val app :
('a -> 'b v) React.signal -> 'a React.signal -> 'b v React.signal
val map : ('a -> 'b v) -> 'a React.signal -> 'b v React.signal
val filter :
('a v -> bool) -> 'a v -> 'a v React.signal -> 'a v React.signal
val fmap :
('a -> 'b v option) ->
'b v -> 'a React.signal -> 'b v React.signal
val when_ :
bool React.signal ->
'a v -> 'a v React.signal -> 'a v React.signal
val dismiss :
'b React.event -> 'a v -> 'a v React.signal -> 'a v React.signal
val accum : ('a v -> 'a v) React.event -> 'a v -> 'a v React.signal
val fold :
('a v -> 'b -> 'a v) ->
'a v -> 'b React.event -> 'a v React.signal
val merge :
('a v -> 'b -> 'a v) ->
'a v -> 'b React.signal list -> 'a v React.signal
val switch :
'a v React.signal ->
'a v React.signal React.event -> 'a v React.signal
val fix :
'a v -> ('a v React.signal -> 'a v React.signal * 'b) -> 'b
val l1 : ('a -> 'b v) -> 'a React.signal -> 'b v React.signal
val l2 :
('a -> 'b -> 'c v) ->
'a React.signal -> 'b React.signal -> 'c v React.signal
val l3 :
('a -> 'b -> 'c -> 'd v) ->
'a React.signal ->
'b React.signal -> 'c React.signal -> 'd v React.signal
val l4 :
('a -> 'b -> 'c -> 'd -> 'e v) ->
'a React.signal ->
'b React.signal ->
'c React.signal -> 'd React.signal -> 'e v React.signal
val l5 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f v) ->
'a React.signal ->
'b React.signal ->
'c React.signal ->
'd React.signal -> 'e React.signal -> 'f v React.signal
val l6 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g v) ->
'a React.signal ->
'b React.signal ->
'c React.signal ->
'd React.signal ->
'e React.signal -> 'f React.signal -> 'g v React.signal
end
module Sf :
sig
type 'a v = float
val create : 'a v -> 'a v React.signal * ('a v -> unit)
val equal : 'a v React.signal -> 'a v React.signal -> bool
val hold : 'a v -> 'a v React.event -> 'a v React.signal
val app :
('a -> 'b v) React.signal -> 'a React.signal -> 'b v React.signal
val map : ('a -> 'b v) -> 'a React.signal -> 'b v React.signal
val filter :
('a v -> bool) -> 'a v -> 'a v React.signal -> 'a v React.signal
val fmap :
('a -> 'b v option) ->
'b v -> 'a React.signal -> 'b v React.signal
val when_ :
bool React.signal ->
'a v -> 'a v React.signal -> 'a v React.signal
val dismiss :
'b React.event -> 'a v -> 'a v React.signal -> 'a v React.signal
val accum : ('a v -> 'a v) React.event -> 'a v -> 'a v React.signal
val fold :
('a v -> 'b -> 'a v) ->
'a v -> 'b React.event -> 'a v React.signal
val merge :
('a v -> 'b -> 'a v) ->
'a v -> 'b React.signal list -> 'a v React.signal
val switch :
'a v React.signal ->
'a v React.signal React.event -> 'a v React.signal
val fix :
'a v -> ('a v React.signal -> 'a v React.signal * 'b) -> 'b
val l1 : ('a -> 'b v) -> 'a React.signal -> 'b v React.signal
val l2 :
('a -> 'b -> 'c v) ->
'a React.signal -> 'b React.signal -> 'c v React.signal
val l3 :
('a -> 'b -> 'c -> 'd v) ->
'a React.signal ->
'b React.signal -> 'c React.signal -> 'd v React.signal
val l4 :
('a -> 'b -> 'c -> 'd -> 'e v) ->
'a React.signal ->
'b React.signal ->
'c React.signal -> 'd React.signal -> 'e v React.signal
val l5 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f v) ->
'a React.signal ->
'b React.signal ->
'c React.signal ->
'd React.signal -> 'e React.signal -> 'f v React.signal
val l6 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g v) ->
'a React.signal ->
'b React.signal ->
'c React.signal ->
'd React.signal ->
'e React.signal -> 'f React.signal -> 'g v React.signal
end
end
val return : 'a -> 'a Lwt_react.signal
val bind :
?eq:('b -> 'b -> bool) ->
'a Lwt_react.signal -> ('a -> 'b Lwt_react.signal) -> 'b Lwt_react.signal
val bind_s :
?eq:('b -> 'b -> bool) ->
'a Lwt_react.signal ->
('a -> 'b Lwt_react.signal Lwt.t) -> 'b Lwt_react.signal Lwt.t
val with_finaliser :
(unit -> unit) -> 'a Lwt_react.signal -> 'a Lwt_react.signal
val limit :
?eq:('a -> 'a -> bool) ->
(unit -> unit Lwt.t) -> 'a Lwt_react.signal -> 'a Lwt_react.signal
val keep : 'a Lwt_react.signal -> unit
val app_s :
?eq:('b -> 'b -> bool) ->
('a -> 'b Lwt.t) Lwt_react.signal ->
'a Lwt_react.signal -> 'b Lwt_react.signal Lwt.t
val map_s :
?eq:('b -> 'b -> bool) ->
('a -> 'b Lwt.t) -> 'a Lwt_react.signal -> 'b Lwt_react.signal Lwt.t
val filter_s :
?eq:('a -> 'a -> bool) ->
('a -> bool Lwt.t) ->
'a -> 'a Lwt_react.signal -> 'a Lwt_react.signal Lwt.t
val fmap_s :
?eq:('b -> 'b -> bool) ->
('a -> 'b option Lwt.t) ->
'b -> 'a Lwt_react.signal -> 'b Lwt_react.signal Lwt.t
val diff_s :
('a -> 'a -> 'b Lwt.t) -> 'a Lwt_react.signal -> 'b Lwt_react.event
val sample_s :
('b -> 'a -> 'c Lwt.t) ->
'b Lwt_react.event -> 'a Lwt_react.signal -> 'c Lwt_react.event
val accum_s :
?eq:('a -> 'a -> bool) ->
('a -> 'a Lwt.t) Lwt_react.event -> 'a -> 'a Lwt_react.signal
val fold_s :
?eq:('a -> 'a -> bool) ->
('a -> 'b -> 'a Lwt.t) -> 'a -> 'b Lwt_react.event -> 'a Lwt_react.signal
val merge_s :
?eq:('a -> 'a -> bool) ->
('a -> 'b -> 'a Lwt.t) ->
'a -> 'b Lwt_react.signal list -> 'a Lwt_react.signal Lwt.t
val l1_s :
?eq:('b -> 'b -> bool) ->
('a -> 'b Lwt.t) -> 'a Lwt_react.signal -> 'b Lwt_react.signal Lwt.t
val l2_s :
?eq:('c -> 'c -> bool) ->
('a -> 'b -> 'c Lwt.t) ->
'a Lwt_react.signal -> 'b Lwt_react.signal -> 'c Lwt_react.signal Lwt.t
val l3_s :
?eq:('d -> 'd -> bool) ->
('a -> 'b -> 'c -> 'd Lwt.t) ->
'a Lwt_react.signal ->
'b Lwt_react.signal -> 'c Lwt_react.signal -> 'd Lwt_react.signal Lwt.t
val l4_s :
?eq:('e -> 'e -> bool) ->
('a -> 'b -> 'c -> 'd -> 'e Lwt.t) ->
'a Lwt_react.signal ->
'b Lwt_react.signal ->
'c Lwt_react.signal -> 'd Lwt_react.signal -> 'e Lwt_react.signal Lwt.t
val l5_s :
?eq:('f -> 'f -> bool) ->
('a -> 'b -> 'c -> 'd -> 'e -> 'f Lwt.t) ->
'a Lwt_react.signal ->
'b Lwt_react.signal ->
'c Lwt_react.signal ->
'd Lwt_react.signal -> 'e Lwt_react.signal -> 'f Lwt_react.signal Lwt.t
val l6_s :
?eq:('g -> 'g -> bool) ->
('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g Lwt.t) ->
'a Lwt_react.signal ->
'b Lwt_react.signal ->
'c Lwt_react.signal ->
'd Lwt_react.signal ->
'e Lwt_react.signal -> 'f Lwt_react.signal -> 'g Lwt_react.signal Lwt.t
val run_s :
?eq:('a -> 'a -> bool) ->
'a Lwt.t Lwt_react.signal -> 'a Lwt_react.signal Lwt.t
end