Module Lwt_react.S

module S: sig .. end

include React.S

Monadic interface


val return : 'a -> 'a Lwt_react.signal
Same as const.

Lwt-specific utilities


val with_finaliser : (unit -> unit) -> 'a Lwt_react.signal -> 'a Lwt_react.signal
with_finaliser f s returns a signal s' which behave as s, except that f is called when s' is garbage collected.
val limit : ?eq:('a -> 'a -> bool) ->
(unit -> unit Lwt.t) -> 'a Lwt_react.signal -> 'a Lwt_react.signal
limit f s limits the rate of s update with f.

For example, to limit it to 1 per second, you can use: limit (fun () -> Lwt_unix.sleep 1.0) s.

val keep : 'a Lwt_react.signal -> unit
keep s keeps a reference to s so it will never be garbage collected.

Threaded versions of React transformation functions



Threaded versions of React transformation functions



The following functions behave as their React counterpart, except that they takes functions that may yield.

The _s suffix means that calls are serialized.

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