Monad
Combinators on monadic computations.
module type Def = sig ... end
A definition of monads, each of the combinators is used in the Make functor.
Make
module type ListS = sig ... end
List combinators
module type S = sig ... end
module Make : functor (M : Def) -> S with type +'a t = 'a M.t
Expands the monadic definition to extra combinators.