9 comments

[ 2.6 ms ] story [ 31.0 ms ] thread
It's hard to understand his syntax, but I think he's arguing for something similar to the way that Rust uses From and Into.
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?
They were made up by the author, but actually kind of make sense

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)