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