sig
type time = float
type 'a t
val at : 'a Sharp_core.t -> Sharp_core.time -> 'a * 'a Sharp_core.t
val subscribe :
'a Sharp_core.t ->
((unit -> unit) -> Sharp_core.time -> unit -> exn option) -> unit
val lock : 'a Sharp_core.t -> unit -> unit -> unit
val make :
(Sharp_core.time -> 'a * 'a Sharp_core.t) ->
(((unit -> unit) -> Sharp_core.time -> unit -> exn option) -> unit) ->
(unit -> unit -> unit) -> 'a Sharp_core.t
val const : 'a -> 'a Sharp_core.t
val time : Sharp_core.time Sharp_core.t
val map : ('a -> 'b) -> 'a Sharp_core.t -> 'b Sharp_core.t
val ( <$> ) : ('a -> 'b) -> 'a Sharp_core.t -> 'b Sharp_core.t
val pure : 'a -> 'a Sharp_core.t
val apply : ('a -> 'b) Sharp_core.t -> 'a Sharp_core.t -> 'b Sharp_core.t
val ( <*> ) : ('a -> 'b) Sharp_core.t -> 'a Sharp_core.t -> 'b Sharp_core.t
val lift0 : 'a -> 'a Sharp_core.t
val lift : ('a -> 'b) -> 'a Sharp_core.t -> 'b Sharp_core.t
val lift2 :
('a -> 'b -> 'c) -> 'a Sharp_core.t -> 'b Sharp_core.t -> 'c Sharp_core.t
val lift3 :
('a -> 'b -> 'c -> 'd) ->
'a Sharp_core.t -> 'b Sharp_core.t -> 'c Sharp_core.t -> 'd Sharp_core.t
val lift4 :
('a -> 'b -> 'c -> 'd -> 'e) ->
'a Sharp_core.t ->
'b Sharp_core.t -> 'c Sharp_core.t -> 'd Sharp_core.t -> 'e Sharp_core.t
val lift5 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f) ->
'a Sharp_core.t ->
'b Sharp_core.t ->
'c Sharp_core.t -> 'd Sharp_core.t -> 'e Sharp_core.t -> 'f Sharp_core.t
val map_opt :
('a -> 'b) -> 'a option Sharp_core.t -> 'b option Sharp_core.t
val ( <$?> ) :
('a -> 'b) -> 'a option Sharp_core.t -> 'b option Sharp_core.t
val apply_opt :
('a -> 'b) option Sharp_core.t ->
'a option Sharp_core.t -> 'b option Sharp_core.t
val ( <*?> ) :
('a -> 'b) option Sharp_core.t ->
'a option Sharp_core.t -> 'b option Sharp_core.t
val sequence : 'a Sharp_core.t list -> 'a list Sharp_core.t
val return : 'a -> 'a Sharp_core.t
val join : 'a Sharp_core.t Sharp_core.t -> 'a Sharp_core.t
val bind : 'a Sharp_core.t -> ('a -> 'b Sharp_core.t) -> 'b Sharp_core.t
val ( >>= ) : 'a Sharp_core.t -> ('a -> 'b Sharp_core.t) -> 'b Sharp_core.t
val ( >> ) : 'a Sharp_core.t -> 'b Sharp_core.t -> 'b Sharp_core.t
val perform : ?force:bool -> 'a Sharp_core.t -> ('a -> unit) -> unit
val perform_state :
?force:bool -> 'a Sharp_core.t -> init:'b -> f:('b -> 'a -> 'b) -> unit
val perform_state_post :
?force:bool ->
'a Sharp_core.t -> init:'b -> f:('b -> 'a -> 'b * (unit -> unit)) -> unit
val react : 'a option Sharp_core.t -> ('a -> unit) -> unit
val react_with :
'a option Sharp_core.t -> 'b Sharp_core.t -> ('a -> 'b -> unit) -> unit
val event : unit -> 'a option Sharp_core.t * ('a -> unit)
val connected_event :
(('a -> unit) -> unit -> unit) ->
'a option Sharp_core.t * ('a -> unit) * (unit -> unit)
val on :
'a option Sharp_core.t ->
init:'b -> f:('b -> 'a -> 'b) -> 'b Sharp_core.t
val last : 'a option Sharp_core.t -> init:'a -> 'a Sharp_core.t
val toggle : 'b option Sharp_core.t -> init:bool -> bool Sharp_core.t
val count : ?init:int -> 'b option Sharp_core.t -> int Sharp_core.t
val upon :
?init:'a -> 'c option Sharp_core.t -> 'a Sharp_core.t -> 'a Sharp_core.t
val fold :
'a Sharp_core.t -> init:'b -> f:('b -> 'a -> 'b) -> 'b Sharp_core.t
end