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