module Monad:sig..end
This module provides everything needed for writing and executing
computations in the BatEnum Monad.
type'am ='a BatEnum.t
BatEnum.t.val return : 'a -> 'a mval bind : 'a m -> ('a -> 'b m) -> 'b mbind m f takes the result of the monadic computation m, puts the f function in the monadic context passing it the result of m and then
returning a monadic result.