Parameter Make2.X
Multi parameter monad. The second parameter gets unified across all the computation. This is used to encode monads working on a multi parameter data structure like (('a,'b) result).
val return : 'a -> ('a, _) X.tThe following identities ought to hold (for some value of =):
return x >>= f = f xt >>= fun x -> return x = t(t >>= f) >>= g = t >>= fun x -> (f x >>= g)
Note: >>= is the infix notation for bind)