sig type 'a m = 'a BatEnum.t val return : 'a -> 'a BatEnum.Monad.m val bind : 'a BatEnum.Monad.m -> ('a -> 'b BatEnum.Monad.m) -> 'b BatEnum.Monad.m end