Swap the order of a tuple pair.
This is provided by Data.Tuple as of
Monads that also support choice and failure.
mzero :: m a
the identity of
mplus. It should also satisfy the equations
mzero >>= f = mzero v >> mzero = mzero
(but the instance for System.IO.IO defined in Control.Monad.Error in the mtl package does not satisfy the second one).
mplus :: m a -> m a -> m a
an associative operation