Control.Comonad.Trans.Adjoint

adjunctions-4.4.2: 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-Inferred
Language | Haskell2010

Control.Comonad.Trans.Adjoint

Description

# Documentation

type Adjoint (f :: Type -> Type) (g :: Type -> Type) = 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 :: Type -> Type) (g :: Type -> Type) (w :: Type -> Type) a #

Constructors

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

#### Instances

Instances details

(Adjunction f g, Distributive g) => ComonadTrans (AdjointT f g) # |
Instance details Defined in Control.Comonad.Trans.Adjoint Methods lower :: Comonad w => AdjointT f g w a -> w a #
(Adjunction f g, Comonad w) => Comonad (AdjointT f g w) # |
Instance details Defined in Control.Comonad.Trans.Adjoint 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, Functor w) => Functor (AdjointT f g w) # |
Instance details Defined in Control.Comonad.Trans.Adjoint 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, Extend w) => Extend (AdjointT f g w) # |
Instance details Defined in Control.Comonad.Trans.Adjoint 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 #