class Monad m => MonadPlus m where mzero :: m a mplus :: m a -> m a -> m a
mzero >> f == mzero m >> (\x -> mzero) == mzero mzero `mplus` m == m m `mplus` mzero == m