Not sure I get the point; of course monads reduce to a functor with two natural transformations (η/μ) that satisfy the monad coherence conditions. That's ... literally what a monad is.
- η[i]: i → t i: this is return/pure.
- μ[i]: t (t i) → t i: this is join.
Now conform to the coherence conditions (aka the monad laws), and you have ... a monad. So why not call it that? It's convenient to have a name for it, and nothing stops you from passing around return/join as freestanding natural transformations if you really want to.
While I use functors, applicatives and monads all the time in Haskell, I have no idea what half of these symbols mean. Are these specific to category theory?
The problem is, it explains in a language for people that know category theory, rather than people that merely use functors, applicatives and monads in Haskell
Indeed we could say that those programming interfaces don't need a lot of category theory to understand. For example, in Java a functor would be called Mappable (and actually it seems there is such a thing defined in some libs)
9 comments
[ 2.6 ms ] story [ 31.0 ms ] threadThis is the most arcane codebase I've seen. It's on par with co-dfns compiler. The frontend syntax also looks like a cross between Haskell and APL.
- η[i]: i → t i: this is return/pure.
- μ[i]: t (t i) → t i: this is join.
Now conform to the coherence conditions (aka the monad laws), and you have ... a monad. So why not call it that? It's convenient to have a name for it, and nothing stops you from passing around return/join as freestanding natural transformations if you really want to.
It's, like, an ideographic alphabet
https://muratkasimov.art/Ya/Operators explains a bit
The problem is, it explains in a language for people that know category theory, rather than people that merely use functors, applicatives and monads in Haskell
Indeed we could say that those programming interfaces don't need a lot of category theory to understand. For example, in Java a functor would be called Mappable (and actually it seems there is such a thing defined in some libs)
(Nod to https://stackoverflow.com/questions/2497801/closures-are-poo... yet real question.)