> I think it would be helpful if all these classes came with their laws > prominently attached in their Haddock documentation or wherever. Agree.
> The trouble with MonadPlus is that the precise set of associated laws is > either unspecified or not the most useful (I assume there's a paper on > the class somewhere). I think everyone can agree on these: > > mplus mzero a = a > mplus a mzero = a > mplus (mplus a b) c = mplus a (mplus b c) <snip> > (mplus a b) >>= c = mplus (a >>= c) (b >>= c) I just checked the paper, "A monadic Interpretation of Tatics", by Andrew Martin and Jeremy Gibbons http://web.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/tactics.pdf And in deed, these are the listed laws for MonadPlus. On the other hand, Maybe is said to be an instance of MonadPlus. So now I'm lost. Cheers, J.A. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe