This series(probably three posts) will be on the monad. The first part will deal with only an introduction to monads, algebras over moands and the adjunction problem . The second part will deal with coequalizers and Beck’s theorem in connection with Kleisli categories. In keeping with this blog’s slight CS tilt, the third part will deal with examples of monads from functional programming which I think are crucial to wholly understand the monad. I’ve noticed that I am running too many ‘series posts’ simultaneously. I am still working on the third part of the Grothendieck Spectral Sequence series and will continue the Hopf fibration post which I haven’t updated for a year!
I think that before I continue to introduce the main players of today’s post, I should review the definitions of an adjoint functor as it’ll be quite useful as a tool to see the power of monads.
Consider two categories and functors and . are said to be adjoint i.e if there exists a natural isomorphism of Hom-sets for all . Equivalently, by the unit=counit definition, if there exists the pair of natural transformations (unit) and (counit) which satisfy the following commutative diagrams:
Throughout the post, I’ll represent natural transformations by the symbol . I recommend the confused reader to refer to Aluffi’s Algebra Chapter 0 book in the section on category theory and also my post on the importance of adjoint functors.
If is a natural transformation of functors whose components are given by for an object in . If is another functor, then I’ll represent the components of the induced natural transformation by .
If instead, there is a functor , then I’ll represent the components of the natural transformation by where is an object in .
Let’s say that is an endofunctor equppied with two natural transformations (unit) and such that the following diagrams commute:
The commutative diagram is a kind of generalization of associativity. I direct the reader to the nlab page to learn more about the basics of it. Much of the importance of monads is derived from its connection to adjoint functors and its connection to programming paradigms(see continuation monad for more information).
Let’s see how monads are connected to adjoint functors.