[Haskell-cafe] Re: monads and groups -- instead of loops
Wouter Swierstra
wss at cs.nott.ac.uk
Thu Aug 2 05:08:04 EDT 2007
On 1 Aug 2007, at 21:23, Greg Meredith wrote:
> But, along these lines i have been wondering for a while... the
> monad laws present an alternative categorification of monoid. At
> least it's alternative to monoidoid. In the spirit of this thought,
> does anyone know of an expansion of the monad axioms to include an
> inverse action? Here, i am following an analogy
>
> monoidoid : monad :: groupoid : ???
I'm not sure that's the right question.
A monoid is a category with one object.
A group is a category with one object, where every arrow is an iso.
A groupoid is a category (with potentially more than one object),
where every arrow is an iso.
A monad is monoid in the category of endofunctors.
Your "groupad", i.e. a group in the category of endofunctors, would
boil down to having a monad m that has an unreturn :: m a -> a. In
the light of things like unsafePerformIO, this is maybe not what you
want.
More interesting, however, is generalizing a monad to a monoid in
functor categories in general, as opposed to just endofunctors. You
could call this a "monadoid". I've heard Tarmo Uustalu talk about
this once (Kan-extensions, coends, *mumble mumble mumble*). Mike
Spivey's MSFP paper (http://spivey.oriel.ox.ac.uk/mike/msfp.pdf)
mentions A-monads, which is a step in that direction.
Anyhow, just a thought.
Wouter
More information about the Haskell-Cafe
mailing list