Hello, Personally, I would like to see the laws more explicitly listed. Some like:
-- The Monoid Laws: -- -- 1. Associative: -- -- x `mappend` (y `mappend` z) == (x `mappend` y) `mappend` z -- -- 2. Left Identity: -- -- mempty `mappend` y == y -- -- 3. Right identity: -- -- x `mappend` mempty == x (Actually, what I'd really like to see is the laws provided as QuickCheck properties. I know there is a project doing this already.) j. At Fri, 16 Jan 2009 13:39:10 +0000, Duncan Coutts wrote: > > On Fri, 2009-01-16 at 14:16 +0100, david48 wrote: > > > Upon reading this thread, I asked myself : what's a monoid ? I had no > > idea. I read some posts, then google "haskell monoid". > > > > The first link leads me to Data.Monoid which starts with > > > > << > > Description > > The Monoid class with various general-purpose instances. > > > > Inspired by the paper /Functional Programming with Overloading and > > Higher-Order Polymorphism/, Mark P Jones > > (http://citeseer.ist.psu.edu/jones95functional.html) Advanced School > > of Functional Programming, 1995. > > >> > > Ross just updated the documentation for the Monoid module. Here is how > it reads now: > > The module header now reads simply: > > A class for monoids (types with an associative binary operation > that has an identity) with various general-purpose instances. > > Note, no links to papers. > > And the Monoid class has: > > The class of monoids (types with an associative binary operation > that has an identity). The method names refer to the monoid of > lists, but there are many other instances. > > Minimal complete definition: 'mempty' and 'mappend'. > > Some types can be viewed as a monoid in more than one way, e.g. > both addition and multiplication on numbers. In such cases we > often define @newt...@s and make those instances of 'Monoid', > e.g. 'Sum' and 'Product'. > > If you or anyone else has further concrete suggestions / improvements > then post them here now! :-) > > > Duncan > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe