# newbie

**Lars Henrik Mathiesen
**
thorinn@diku.dk

*13 Mar 2001 00:12:02 -0000*

>* Date: Mon, 12 Mar 2001 17:16:29 +0100
*>* From: Frank Atanassow <franka@cs.uu.nl>
*
>* Lars Henrik Mathiesen wrote (on 10-03-01 20:35 -0000):
*>* > However, in some expositions of category theory, the usefulness of
*>* > monads is justified because they 'belong' to a certain adjunction.
*>*
*>* You can regard a monad as arising from a particular adjunction but,
*>* although every adjunction determines a unique monad, the converse is
*>* not true. In fact, the collection of resolutions for a monad forms a
*>* category with adjunctions as objects and certain functors as arrows.
*>* The adjunction which gives rise to the Kleisli category is initial
*>* in this category. The terminal object is called the Eilenberg-Moore
*>* category and it has as objects M-algebras, like your `xi', and as
*>* arrows M-algebra homomorphisms.
*
Yes, I was aware of that --- I should perhaps have said that there's
typically a 'motivating' adjunction, often one involving a forgetful
functor. Which is generally different from the one into the Kleisli
category.
I read the rest of your post with great interest too, though I need to
work at it a bit before I think I understand all of it. MacLane is off
the shelf, and section IV.7 is scheduled to be worked though come the
weekend.
My own thoughts were a bit less ambitious, and I found out that
Haskell (at least hugs -98 +o) will in fact do what I had in mind:
>* module Algebra () where
*
>* class Monad m => Algebra m a where xi :: m a -> a
*
>* instance (Num a) => Algebra [] a where
*>* xi = foldl (+) 0
*
>* instance Algebra [] [a] where xi = concat
*
>* unit :: Algebra [] a => a
*>* unit = xi []
*
>* (#) :: Algebra [] a => a -> a -> a
*>* x # y = xi [x, y]
*
Prelude> :load Algebra.lhs
Reading file "Algebra.lhs":
Hugs session for:
/usr/local/share/hugs/lib/Prelude.hs
Algebra.lhs
Algebra> unit :: Int
0
Algebra> unit :: Float
0.0
Algebra> unit :: [Char]
""
Algebra> "foo" # "bar"
"foobar"
Algebra> (1::Int) # 2 # 3
6
But perhaps I'm just easily amused.
Lars Mathiesen (U of Copenhagen CS Dep) <thorinn@diku.dk> (Humour NOT marked)