[Haskell-cafe] Could someone teach me why we use Data.Monoid?

Andrew Coppin andrewcoppin at btinternet.com
Fri Nov 13 11:52:34 EST 2009

Stephen Tetley wrote:
> 2009/11/13 Rafael Gustavo da Cunha Pereira Pinto <RafaelGCPP.Linux at gmail.com>:
>> Monoid is the category of all types that have a empty value and an append
>> operation.
> Or more generally a neutral element and an associative operation:
> The multiplication monoid (1,*)
> 9*1*1*1 = 9
> 1 is neutral but you might be hard pressed to consider it _empty_.

This is the thing. If we had a class specifically for containers, that 
could be useful. If we had a class specifically for algebras, that could 
be useful. But a class that represents "any possible thing that can 
technically be considered a monoid" seems so absurdly general as to be 
almost useless. If you don't know what an operator *does*, being able to 
abstract over it isn't especially helpful...

...in my humble opinion. (Which, obviously, nobody else will agree with.)

More information about the Haskell-Cafe mailing list