Monad.DefA definition of monads, each of the combinators is used in the Make functor.
val return : 'a -> 'a tThe monadic laws must hold:
(x>>=f)>>=g = x>>=fun x' -> (f x'>>=g)return a >>= f = f ax>>=return = xAs well as the following identities:
x >> y = x >>= fun () -> ymap f x = x >>= fun x' -> f x'