[Haskell-cafe] monad . comonad = id
Miguel Mitrofanov
miguelimo38 at yandex.ru
Fri May 8 07:54:37 EDT 2009
Seems like I was wrong. It does satisfy comonad laws. Sorry.
However, the "duality" of monads and comonads isn't that simple. A comonad is actually a monad itself, but in different category. It has nothing
to do with inverse functions etc.
Jan Christiansen wrote on 08.05.2009 14:47:
> 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
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
More information about the Haskell-Cafe
mailing list