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