adjunctions-4.2.1: Adjunctions and representable functors

Copyright(C) 2011-2013 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
PortabilityMPTCs, fundeps
Safe HaskellTrustworthy
LanguageHaskell98

Control.Monad.Trans.Adjoint

Description

 

Documentation

type Adjoint f g = AdjointT f g Identity

runAdjoint :: Functor g => Adjoint f g a -> g (f a)

adjoint :: Functor g => g (f a) -> Adjoint f g a

newtype AdjointT f g m a

Constructors

AdjointT 

Fields

runAdjointT :: g (m (f a))
 

Instances

(Adjunction f g, Traversable f) => MonadTrans (AdjointT f g)

Exploiting this instance requires that we have the missing Traversables for Identity, (,)e and IdentityT

(Adjunction f g, Monad m) => Monad (AdjointT f g m) 
(Adjunction f g, Monad m) => Functor (AdjointT f g m) 
(Adjunction f g, Monad m) => Applicative (AdjointT f g m)