Of monads and comonads This post is written in Literate Haskell. This means that you can copy it into a .lhs file1 and run it through a Haskell compiler or interpreter. Today we’ll talk about… import Control.Comonad import Control.Monad Comonads ! They are the categoric dual of monads, which means that the type signatures of comonadic functions look like monadic functions, but with the arrow rever