So, anyone? What are the laws that MonadPlus is supposed to satisfy? The obvious ones are that if MonadPlus m then for all types a, (m a) should be a monoid. But, what about the others, because IO does not appear to satisfy a >> mzero == mzero Jules