A common example used to illustrate how monads arise from adjoint functors is State
. One of the reasons this is such a good example is that the two adjoint functors, (->) r
and (,) r
, are both endofunctors on Hask. Other canonical monads involve adjoint functors into and out of Hask (e.g., []
and Maybe
), which makes them harder to appreciate for people who know Haskell, but who have less background in category theory.
Are there any other common monads that arise via adjoint endofunctors on Hask? (Obviously the Identity
monad is one such case, but not a very interesting one.)