
Dear List, I am quite new in Haskell's categorical manner of programming. However I have enough knowledge in Category Theory. I want to ask a question, maybe very well-known one by some of you, about monads of Haskell. For the type constructors like Maybe and [], I managed to prove that together with 2 natural transformations (bind + return), both of these triples construct a monad. But when I try to prove that IO and Cont type constructors with the same natural transformations (bind + return) are monads as well, it was failed. Here my question is: Is there anyone who knows how to prove that IO and Cont are monads with satisfing following properties: join . fmap join = join . joinjoin . fmap return = join . return = idreturn . f = fmap f . returnjoin . fmap (fmap f) = fmap f . join Thanks already now, Burak Ekici.