Marcin Szamotulski profunctor at pm.me
Wed Jul 18 09:21:55 UTC 2018

```There is more to this picture.  If you have a set G then lists of elements of G is the free monoid.  You get a list only because the category of sets is monoidal with the monoidal product the cartesian product.   The same construction can be carried to free monads, but in a different category: the monoidal category of endofunctors, where the monoidal product is functor composition, so you'll end up with a recursive thing build in much of the same way.  I recently wrote a blog posts about it: https://marcinszamotulski.me/posts/free-monads.html - if you're not afraid of some mathematics (universal algebra and just a bit of category theory).

Free construction carries all the structure of monoids or monads: having free monoid / monad you can get back `mempty` and `mappend` (or `return` and `join` / `>>=`) for any other monoid / monad.

Best regards,
Marcin

​Sent with ProtonMail Secure Email.​

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On July 17, 2018 10:36 PM, Joachim Durchholz <jo at durchholz.org> wrote:

> 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.
>
> Agreed.
>
> > 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 :-)
>
> Regards,
>
> Jo
>