[Haskell-cafe] Monads vs. monoids

Joachim Durchholz jo at durchholz.org
Tue Jul 17 20:36:46 UTC 2018

Am 17.07.2018 um 22:23 schrieb Olaf Klinke:
> You could say that every monad harbors a monoid, and that every monoid 
> arises this way. But of course the whole and the part are not the same.


> That depends on the definition of "monoid". If a monoid is a set with 
> certain structure, then a monad is not a monoid.

That's the perspective from which I'm looking at abstract data types: A 
set of values, a set of operations, a set of axioms over the operations 
and values.
Well, that's the textbook definition, there's a lot of data structures 
that have multiple value sets but still are related through axioms. I 
just don't know an example of such a structure that it could make it 
into the textbooks :-)

 From that perspective, monads and monoids are distinct.
Even fundamentally so: Monad axioms have more type parameters than 
monoid axioms, so they cannot be made isomorphic by clever transformations.

>> There's also a final argument: If monad and monoid are really the same,
>> why do mathematicians still keep the separate terminology?
> Because they are different, as we hopefully agree.

We do :-)


More information about the Haskell-Cafe mailing list