sig type'a channel val new_channel : unit ->'a Event.channel type'a event val send : 'a Event.channel ->'a -> unit Event.event val receive : 'a Event.channel ->'a Event.event val always : 'a ->'a Event.event val choose : 'a Event.event list ->'a Event.event val wrap : 'a Event.event -> ('a ->'b) ->'b Event.event val wrap_abort : 'a Event.event -> (unit -> unit) ->'a Event.event val guard : (unit ->'a Event.event) ->'a Event.event val sync : 'a Event.event ->'a val select : 'a Event.event list ->'a val poll : 'a Event.event ->'a option