[Haskell-cafe] Re: What are the MonadPlus laws?

Ashley Yakeley ashley at semantic.org
Tue Jan 25 23:31:27 EST 2005


In article <F9A40F60-6EFD-11D9-8550-000A95F0ED78 at jellybean.co.uk>,
 Jules Bean <jules at jellybean.co.uk> wrote:

> So, anyone? What are the laws that MonadPlus is supposed to satisfy?

These are what I think they should be:

  mplus mzero a = a
  mplus a mzero = a
  mplus (mplus a b) c = mplus a (mplus b c)
  mzero >>= a = mzero
  (mplus a b) >>= c = mplus (a >>= c) (b >>= c)

These are what is found in Martin and Gibbons paper, even as they're 
wrong that Maybe can follow them.

<http://web.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/tactics
.pdf>

-- 
Ashley Yakeley, Seattle WA



More information about the Haskell-Cafe mailing list