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