MHask-0.3.0.0: The category of monads

Safe HaskellSafe-Inferred

MHask.Comonad

Description

Compare to comonad.Control.Comonad (Comonad)

Synopsis

Documentation

class Copointed t => Comonad t whereSource

Dual of MHask.Monad

Methods

duplicate :: Monad m => t (t m) <~ t mSource

extend :: (Monad m, Monad n) => (m <~ t n) -> t m <~ t nSource

fmapComonad :: (Monad m, Monad n, Monad (t n), Comonad t) => (m <~ n) -> t m <~ t nSource

If you define your Comonad in terms of extend and extract, then you get a free implementation of fmap which can be used for Functor.