
4 Sep
2012
4 Sep
'12
7:21 p.m.
On Tue, Sep 4, 2012 at 3:39 AM, Alberto G. Corona
"Monads are monoids in the category of endofunctors"
This Monoid instance for the endofunctors of the set of all elements of (m a) typematch in Haskell with FlexibleInstances:
instance Monad m => Monoid (a -> m a) where mappend = (>=>) -- kleisly operator mempty = return
The objects of a Kliesli category for a monad m aren't endofunctors. You want something like: instance Monad m => Monoid (m a -> m (m a)) where ... /These/ are endofunctors, in virtue of join transforming an m (m a) into an (m a).