functor (Mon : BatInterfaces.Monad->   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