Module type BatInterfaces.Monad

module type Monad = sig .. end

Signature for monads


type 'a m 

The type of a monad producing values of type 'a.

val bind : 'a m ->
('a -> 'b m) -> 'b m

Monadic binding.

bind m f executes first m then f, using the result of m.

val return : 'a -> 'a m

Return a value, that is, put a value in the monad.