sig
type 'a t = 'a React.signal
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 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 filter :
?eq:('a -> 'a -> bool) ->
('a -> bool) -> 'a -> 'a React.signal -> 'a 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 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
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 -> 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 t -> 'a t -> bool end
module type S =
sig
type 'a v
val create :
'a v -> 'a v React.signal * (?step:React.step -> '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 React.signal -> 'a v React.signal
val bind :
'b React.signal -> ('b -> 'a v React.signal) -> '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 * (?step:React.step -> '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 React.signal -> 'a v React.signal
val bind :
'b React.signal -> ('b -> 'a v React.signal) -> '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 * (?step:React.step -> '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 React.signal -> 'a v React.signal
val bind :
'b React.signal -> ('b -> 'a v React.signal) -> '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 * (?step:React.step -> '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 React.signal -> 'a v React.signal
val bind :
'b React.signal -> ('b -> 'a v React.signal) -> '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 * (?step:React.step -> '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 React.signal -> 'a v React.signal
val bind :
'b React.signal -> ('b -> 'a v React.signal) -> '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 const : 'a -> 'a t
val value : 'a t -> 'a Value.t
val map :
?eq:('b -> 'b -> bool) Value.t -> ('a -> 'b) Value.t -> 'a t -> 'b t
val fmap :
?eq:('b -> 'b -> bool) Value.t ->
('a -> 'b option) Value.t -> 'b Value.t -> 'a t -> 'b t
val merge :
?eq:('a -> 'a -> bool) Value.t ->
('a -> 'b -> 'a) Value.t -> 'a -> 'b t list -> 'a t
val l2 :
?eq:('c -> 'c -> bool) Value.t ->
('a -> 'b -> 'c) Value.t -> 'a t -> 'b t -> 'c t
val l3 :
?eq:('d -> 'd -> bool) Value.t ->
('a -> 'b -> 'c -> 'd) Value.t -> 'a t -> 'b t -> 'c t -> 'd t
val l4 :
?eq:('e -> 'e -> bool) Value.t ->
('a -> 'b -> 'c -> 'd -> 'e) Value.t ->
'a t -> 'b t -> 'c t -> 'd t -> 'e t
val l5 :
?eq:('f -> 'f -> bool) Value.t ->
('a -> 'b -> 'c -> 'd -> 'e -> 'f) Value.t ->
'a t -> 'b t -> 'c t -> 'd t -> 'e t -> 'f t
val l6 :
?eq:('g -> 'g -> bool) Value.t ->
('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g) Value.t ->
'a t -> 'b t -> 'c t -> 'd t -> 'e t -> 'f t -> 'g t
val switch : ?eq:('a -> 'a -> bool) Value.t -> 'a t t -> 'a t
module Infix :
sig
val ( >|= ) : 'a t -> ('a -> 'b) Value.t -> 'b t
val ( =|< ) : ('a -> 'b) Value.t -> 'a t -> 'b t
end
module Lwt :
sig
val map_s :
?eq:('b -> 'b -> bool) Value.t ->
('a -> 'b Lwt.t) Value.t -> 'a t -> 'b t Lwt.t
val l2_s :
?eq:('c -> 'c -> bool) Value.t ->
('a -> 'b -> 'c Lwt.t) Value.t -> 'a t -> 'b t -> 'c t Lwt.t
val l3_s :
?eq:('d -> 'd -> bool) Value.t ->
('a -> 'b -> 'c -> 'd Lwt.t) Value.t ->
'a t -> 'b t -> 'c t -> 'd t Lwt.t
val l4_s :
?eq:('e -> 'e -> bool) Value.t ->
('a -> 'b -> 'c -> 'd -> 'e Lwt.t) Value.t ->
'a t -> 'b t -> 'c t -> 'd t -> 'e t Lwt.t
val l5_s :
?eq:('f -> 'f -> bool) Value.t ->
('a -> 'b -> 'c -> 'd -> 'e -> 'f Lwt.t) Value.t ->
'a t -> 'b t -> 'c t -> 'd t -> 'e t -> 'f t Lwt.t
val l6_s :
?eq:('g -> 'g -> bool) Value.t ->
('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g Lwt.t) Value.t ->
'a t -> 'b t -> 'c t -> 'd t -> 'e t -> 'f t -> 'g t Lwt.t
val merge_s :
?eq:('a -> 'a -> bool) Value.t ->
('a -> 'b -> 'a Lwt.t) Value.t -> 'a -> 'b t list -> 'a t Lwt.t
end
val create :
?eq:('a -> 'a -> bool) ->
?default:('a t * (?step:React.step -> 'a -> unit)) option ->
?reset_default:bool ->
'a -> 'a React.signal * (?step:React.step -> 'a -> unit)
end