IO monad
type 'a t
= 'a Deferred.t
val return : 'a ‑> 'a t
val bind : 'a t ‑> f:('a ‑> 'b t) ‑> 'b t