As for Cont, it can be proved easily, either by hand, or by observation that Cont is an obvious composition of two adjoint functors.

As for IO, it has to be taken for granted, since IO internals are hidden from the programmer.

Отправлено с iPhone

Apr 12, 2011, в 14:39, Burak Ekici <ekcburak@hotmail.com> написал(а):

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:

  1. join . fmap join = join . join
  2. join . fmap return = join . return = id
  3. return . f = fmap f . return
  4. join . fmap (fmap f) = fmap f . join

Thanks already now,
Burak Ekici.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe