In this article, I show that the definitions of functors, monads etc. in the programming sense do not only correspond loosely with the categorical definitions, but are precisely identical if we are in the relevant category. Among other topics, this article shows that the phrase "a monad is a monoid in the category of endofunctors" is a precise category-theoretic definition of what a monad is, and shows that a monad in the programming sense that satisfies the monad laws (in the programming sense) implies that what we have is also, precisely, a category-theoretic monad.

Read the post here.