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.

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to