Control.Comonad.Trans.Adjoint

adjunctions-4.3: Adjunctions and representable functors

Copyright | (C) 2011-2013 Edward Kmett
License | BSD-style (see the file LICENSE)
Maintainer | Edward Kmett <ekmett@gmail.com>
Stability | provisional
Portability | MPTCs, fundeps
Safe Haskell | Safe
Language | Haskell98

Control.Comonad.Trans.Adjoint

Description

# Documentation

type Adjoint f g = AdjointT f g Identity #

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

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

newtype AdjointT f g w a #

Constructors

AdjointT |
Fields runAdjointT :: f (w (g a))

Instances

(Adjunction f g, Distributive g) => ComonadTrans (AdjointT f g) # |
Methods lower :: Comonad w => AdjointT f g w a -> w a #
(Adjunction f g, Functor w) => Functor (AdjointT f g w) # |
Methods fmap :: (a -> b) -> AdjointT f g w a -> AdjointT f g w b # (<$) :: a -> AdjointT f g w b -> AdjointT f g w a #
(Adjunction f g, Comonad w) => Comonad (AdjointT f g w) # |
Methods extract :: AdjointT f g w a -> a # duplicate :: AdjointT f g w a -> AdjointT f g w (AdjointT f g w a) # extend :: (AdjointT f g w a -> b) -> AdjointT f g w a -> AdjointT f g w b #
(Adjunction f g, Extend w) => Extend (AdjointT f g w) # |
Methods duplicated :: AdjointT f g w a -> AdjointT f g w (AdjointT f g w a) # extended :: (AdjointT f g w a -> b) -> AdjointT f g w a -> AdjointT f g w b #