
Hello, Just some minor suggestions and comments: The description might read better as two sentences: A class for monoids with various general-purpose instances. Monoids are types with an associative binary operation that has an identity. One thing that I think is a bit unclear from that description is the fact that it does not matter *what* the binary operation does, as long as the laws are followed. That is the whole point of the monoid class -- you use it when you only care about the laws, not the specific operation... For the laws, it would be nice to label each rule, something like * mappend mempty x = x -- Left Identity * mappend x empty = x -- Right Identity * mappend x (mappend y z) = mappend (mappend x y) z -- Associative * mconcat = foldr mappend mempty -- Not sure what to call this. Perhaps it an axiom? See the Applicative class for a formatting example: http://www.haskell.org/ghc/dist/current/docs/libraries/base/Control-Applicat... As an expert, seeing the name is faster than reverse engineering the meaning of each law. I also suspect many people have never heard of the concept of an identity element (I am pretty sure I hadn't when I first started Haskell). So, I think it would be nice to tie together the concepts mentioned in the description with the actual laws so that the link is explicit. j. At Sun, 18 Jan 2009 13:57:07 +0000, Duncan Coutts wrote:
On Sat, 2009-01-17 at 13:36 -0800, David Leimbach wrote:
On Sat, Jan 17, 2009 at 9:16 AM, david48
wrote: On Sat, Jan 17, 2009 at 4:08 PM, David Leimbach wrote: > So you're saying it should be better documented in Haskell what a Monoid is. > Did you say you searched for "C++ class" why not "Haskell Monoid" then? > The first correct google hit that didn't think I meant Monads, takes you > straight to the GHC documentation for Data.Monoid.
Read my first post on the thread, that's exactly what I did ( and then complained that the doc for Data.Monoid was close to useless )
Sorry missed it! This is an exceptionally long thread! :-) I agree Data.Monoid's docs don't give you much to work with.
Do you think they look better now:
http://www.haskell.org/ghc/dist/current/docs/libraries/base/Data-Monoid.html
Any other improvements you'd make?
Duncan
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe