Module Monad

Combinators on monadic computations.

module type Def = sig ... end

A definition of monads, each of the combinators is used in the Make functor.

module type ListS = sig ... end

List combinators

module type S = sig ... end
module Make (M : Def) : S with type +'a t = 'a M.t

Expands the monadic definition to extra combinators.