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.