sig
type 'a channel
val new_channel : unit -> 'a Ccell.Event.channel
type 'a event
val send : 'a Ccell.Event.channel -> 'a -> unit Ccell.Event.event
val receive : 'a Ccell.Event.channel -> 'a Ccell.Event.event
val always : 'a -> 'a Ccell.Event.event
val choose : 'a Ccell.Event.event list -> 'a Ccell.Event.event
val wrap : 'a Ccell.Event.event -> ('a -> 'b) -> 'b Ccell.Event.event
val guard : (unit -> 'a Ccell.Event.event) -> 'a Ccell.Event.event
val join : 'a Ccell.Event.event Ccell.Event.event -> 'a Ccell.Event.event
val sync : 'a Ccell.Event.event -> 'a
val select : 'a Ccell.Event.event list -> 'a
val poll : 'a Ccell.Event.event -> 'a option
val never : 'a Ccell.Event.event
val return : 'a -> 'a Ccell.Event.event
val bind :
'a Ccell.Event.event ->
('a -> 'b Ccell.Event.event) -> 'b Ccell.Event.event
val ( >>= ) :
'a Ccell.Event.event ->
('a -> 'b Ccell.Event.event) -> 'b Ccell.Event.event
val ( >> ) :
'a Ccell.Event.event -> 'b Ccell.Event.event -> 'b Ccell.Event.event
val fmap : ('a -> 'b) -> 'a Ccell.Event.event -> 'b Ccell.Event.event
val fmap2 :
('a -> 'b -> 'c) ->
'a Ccell.Event.event -> 'b Ccell.Event.event -> 'c Ccell.Event.event
val app :
('a -> 'b) Ccell.Event.event ->
'a Ccell.Event.event -> 'b Ccell.Event.event
val mzero : 'a Ccell.Event.event
val mplus :
'a Ccell.Event.event -> 'a Ccell.Event.event -> 'a Ccell.Event.event
val receive_reserve : 'a Ccell.Event.channel -> 'a Ccell.Ivar.t
val filter : ('a -> bool) -> 'a Ccell.Event.event -> 'a Ccell.Event.event
val filter_map :
('a -> 'b option) -> 'a Ccell.Event.event -> 'b Ccell.Event.event
val sequence : 'a Ccell.Event.event list -> 'a list Ccell.Event.event
val future : ('a -> 'b) -> 'a -> 'b Ccell.Event.event
module Cell :
sig
type 'a t
val make : unit -> 'a Ccell.Event.Cell.t
val init_make : 'a -> 'a Ccell.Event.Cell.t
val read : 'a Ccell.Event.Cell.t -> 'a Ccell.Event.event
val take : 'a Ccell.Event.Cell.t -> 'a Ccell.Event.event
val put : 'a Ccell.Event.Cell.t -> 'a -> unit Ccell.Event.event
end
end