Module type BatMonad.S


module type S = 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.