Sigs.IO
type +'a t
val bind : 'a t -> ('a -> 'b t) -> 'b t
val return : 'a -> 'a t
val fail : exn -> 'a t
val async : (unit -> unit t) -> unit