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