module Lwt_signal:Signals utilitiessig..end
val return : 'a -> 'a React.signalReact.S.constval bind : 'a React.signal -> ('a -> 'b React.signal) -> 'b React.signalbind signal f is initially f x where x is the current
value of signal. Each time signal changes to a new value
y, bind signal f is set to f y, until the next change of
signal.val with_finaliser : (unit -> unit) -> 'a React.signal -> 'a React.signalwith_finaliser f signal returns a signal signal' which
behave as signal, except that f is called when signal' is
garbage collected.val limit : ?eq:('a -> 'a -> bool) ->
(unit -> unit Lwt.t) -> 'a React.signal -> 'a React.signallimit f signal limits the rate of signal update with f.
For example, to limit it to 1 per second, you can use: limit
(fun () -> Lwt_unix.sleep 1.0) signal.
React counterpart,
except that they takes functions that may yield. Also, since
signals must always have a value, several functions takes an extra
argument for the initial value.
The _s suffix means that calls are serialized.
val app_s : ?eq:('a -> 'a -> bool) ->
('b -> 'a Lwt.t) React.signal -> 'a -> 'b React.signal -> 'a React.signalapp_s ?eq signal_f initial signal_xval map_s : ?eq:('a -> 'a -> bool) ->
('b -> 'a Lwt.t) -> 'a -> 'b React.signal -> 'a React.signalmap_s ?eq f initial signalval filter_s : ?eq:('a -> 'a -> bool) ->
('a -> bool Lwt.t) -> 'a -> 'a React.signal -> 'a React.signalfilter_s ?eq f initial signalval fmap_s : ?eq:('a -> 'a -> bool) ->
('b -> 'a option Lwt.t) -> 'a -> 'b React.signal -> 'a React.signalfmap ?eq f initial signalval diff_s : ('a -> 'a -> 'b Lwt.t) -> 'a React.signal -> 'b React.eventdiff_s f signalval sample_s : ('a -> 'b -> 'c Lwt.t) -> 'a React.event -> 'b React.signal -> 'c React.eventsample f event signalval accum_s : ?eq:('a -> 'a -> bool) ->
('a -> 'a Lwt.t) React.event -> 'a -> 'a React.signalaccum ?eq event_f initialval fold_s : ?eq:('a -> 'a -> bool) ->
('a -> 'b -> 'a Lwt.t) -> 'a -> 'b React.event -> 'a React.signalfold ?eq f initial eventval merge_s : ?eq:('a -> 'a -> bool) ->
('a -> 'b -> 'a Lwt.t) -> 'a -> 'b React.signal list -> 'a React.signalmerge ?eq f initial signalsval l1_s : ?eq:('a -> 'a -> bool) ->
('b -> 'a Lwt.t) -> 'a -> 'b React.signal -> 'a React.signalval l2_s : ?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'a Lwt.t) ->
'a -> 'b React.signal -> 'c React.signal -> 'a React.signalval l3_s : ?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'd -> 'a Lwt.t) ->
'a ->
'b React.signal -> 'c React.signal -> 'd React.signal -> 'a React.signalval l4_s : ?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'd -> 'e -> 'a Lwt.t) ->
'a ->
'b React.signal ->
'c React.signal -> 'd React.signal -> 'e React.signal -> 'a React.signalval l5_s : ?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'd -> 'e -> 'f -> 'a Lwt.t) ->
'a ->
'b React.signal ->
'c React.signal ->
'd React.signal -> 'e React.signal -> 'f React.signal -> 'a React.signalval l6_s : ?eq:('a -> 'a -> bool) ->
('b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'a Lwt.t) ->
'a ->
'b React.signal ->
'c React.signal ->
'd React.signal ->
'e React.signal -> 'f React.signal -> 'g React.signal -> 'a React.signalval run_s : ?eq:('a -> 'a -> bool) -> 'a -> 'a Lwt.t React.signal -> 'a React.signaltype notifier
val disable : notifier -> unitdisable notif stops the corresponding signal to be
monitoredval notify : ('a -> unit) -> 'a React.signal -> notifiernotify f s calls f each time the value of s changeval notify_p : ('a -> unit Lwt.t) -> 'a React.signal -> notifiernotify_p f s is the same as notify except that f x is a
thread. Calls to f are made in parallel.val notify_s : ('a -> unit Lwt.t) -> 'a React.signal -> notifiernotify_s f s is the same as notify except that f x is a
thread. Calls to f are serialized.val always_notify : ('a -> unit) -> 'a React.signal -> unitnotify but does not return a notifierval always_notify_p : ('a -> unit Lwt.t) -> 'a React.signal -> unitnotify_p but does not return a notifierval always_notify_s : ('a -> unit Lwt.t) -> 'a React.signal -> unitnotify_s but does not return a notifier