[Haskell-cafe] Comments from OCaml Hacker Brian Hurt

Derek Elkins derek.a.elkins at gmail.com
Thu Jan 22 12:48:31 EST 2009

On Thu, 2009-01-22 at 11:32 -0600, Jeremy Shaw wrote:
> 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?

This is just a definition, both actually and nominally.

More information about the Haskell-Cafe mailing list