functor (Mon : BatMonad.S->
  sig
    type 'a m = 'Mon.m
    val sequence :
      'BatEnum.WithMonad.m BatEnum.t -> 'BatEnum.t BatEnum.WithMonad.m
    val fold_monad :
      ('-> '-> 'BatEnum.WithMonad.m) ->
      '-> 'BatEnum.t -> 'BatEnum.WithMonad.m
  end