MndSourceA binary monad interprets a type ('a, 'b) t as computation of values of type 'a. Note that combining such monads requires the second type 'b to be equal in all of them.
A unary monad interprets a type 'a t as computation of values of type 'a.
The fundamental functions defining a monad, i.e. what you need to implement in order to instantiate a monad with Make
The monad interface with let*-syntax, common operators and functions. These are the elements you get when instantiating a monad with Make.
Functor to instantiate the MONAD interface for custom monads by providing a MONAD_DEF.