
Hello Jan,
the principle of duality in category theory is not like "being the
inverse", but more like "stating the same somewhere else". To each
category there is an opposite category, which is just the same, but with
all arrows flipped. A comonad in the original category is then a monad
in the corresponding opposite category.
Greets,
Ertugrul.
Jan Christiansen
Hi,
I have a question regarding the connection between monads and comonads. I always thought of the comonad operations as being the inverse operations of the corresponding monad functions. As I do not know the underlying theory I thought I simply ask the masters.
Is there a formal verification for this intuition? That is, are there always corresponding instances for monad and comonad such that the following laws are satisfied?
extract . return == id
join . duplicate == id
If this is the case I would like to know what the corresponding monad for the following comond could be. This comonad treats lists as pointed sets where the first element is focused.
instance Comonad [] where extract = head duplicate xs = init (zipWith (++) (tails xs) (inits xs))
Obviously we can define return x = [x]. But I do not know how to define join.
Cheers, Jan
-- nightmare = unsafePerformIO (getWrongWife >>= sex) http://blog.ertes.de/