adjunctions-0.3.1: Adjunctions

PortabilityMPTCs, fundeps
Stabilityprovisional
MaintainerEdward Kmett <ekmett@gmail.com>

Control.Comonad.Contra

Description

Use a contravariant dual adjunction from Hask^op to build a Monad to Comonad transformer.

Documentation

runContra :: Contravariant f => Contra f g a -> f (g a)Source

contra :: Contravariant f => f (g a) -> Contra f g aSource

newtype ContraT f g m a Source

Constructors

ContraT 

Fields

runContraT :: f (m (g a))
 

Instances

(Contravariant f, Contravariant g, Monad m) => Functor (ContraT f g m) 
(DualAdjunction f g, Monad m) => Comonad (ContraT f g m)