adjunctions-4.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-Inferred
Language | Haskell2010

Control.Comonad.Trans.Adjoint

Description

# Documentation

type Adjoint (f :: Type -> Type) (g :: Type -> Type) = AdjointT f g Identity Source #

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

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

newtype AdjointT (f :: Type -> Type) (g :: Type -> Type) (w :: Type -> Type) a Source #

Constructors

AdjointT |

Fields

- runAdjointT :: f (w (g a))

#### Instances

Instances details

(Adjunction f g, Distributive g) => ComonadTrans (AdjointT f g) Source # |
Instance details Defined in Control.Comonad.Trans.Adjoint Methods lower :: Comonad w => AdjointT f g w a -> w a Source #
(Adjunction f g, Comonad w) => Comonad (AdjointT f g w) Source # |
Instance details Defined in Control.Comonad.Trans.Adjoint Methods extract :: AdjointT f g w a -> a Source # duplicate :: AdjointT f g w a -> AdjointT f g w (AdjointT f g w a) Source # extend :: (AdjointT f g w a -> b) -> AdjointT f g w a -> AdjointT f g w b Source #
(Adjunction f g, Functor w) => Functor (AdjointT f g w) Source # |
Instance details Defined in Control.Comonad.Trans.Adjoint Methods fmap :: (a -> b) -> AdjointT f g w a -> AdjointT f g w b Source # (<$) :: a -> AdjointT f g w b -> AdjointT f g w a Source #
(Adjunction f g, Extend w) => Extend (AdjointT f g w) Source # |
Instance details Defined in Control.Comonad.Trans.Adjoint Methods duplicated :: AdjointT f g w a -> AdjointT f g w (AdjointT f g w a) Source # extended :: (AdjointT f g w a -> b) -> AdjointT f g w a -> AdjointT f g w b Source #