sig type 'a t val bind : 'a Extlib.Monad.S.t -> ('a -> 'b Extlib.Monad.S.t) -> 'b Extlib.Monad.S.t val return : 'a -> 'a Extlib.Monad.S.t val failwith : string -> 'a Extlib.Monad.S.t end