> things that makes monads notoriously difficult to explain to people outside of the Haskell ecosystem
Huh, I thought a monad is just a monoid in the category of endofunctors, what's the problem?
Huh, I thought a monad is just a monoid in the category of endofunctors, what's the problem?
In both cases what they really are is an abstract concept defined by things that satisfy some definitions, but in practice it's easier to just look at a few concrete examples like Maybe.
I will say that explaining functors to my coworkers was always much simpler, and then naturally led to monads
For haskellers, it is writing a monad tutorial
For javascripters, it is writing a framework
For make-stuff-with-LLM people, it is producing a diagram explaining your code generation factory
... and so on