category-extras-0.53.4: Various modules and constructs inspired by category theory

Portabilitynon-portable (functional-dependencies)
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>

Control.Functor.Adjunction

Contents

Description

 

Synopsis

Documentation

class (Representable g (f ()), Functor f) => Adjunction f g | f -> g, g -> f whereSource

An Adjunction formed by the Functor f and Functor g.

Methods

unit :: a -> g (f a)Source

counit :: f (g a) -> aSource

leftAdjunct :: (f a -> b) -> a -> g bSource

rightAdjunct :: (a -> g b) -> f a -> bSource

Instances

Adjunction Identity Identity 
Adjunction ((,) e) ((->) e) 
Adjunction (Coreader e) (Reader e) 
(Adjunction f1 g1, Adjunction f2 g2) => Adjunction (CompF f2 f1) (CompF g1 g2) 

newtype ACompF f g a Source

Adjunction-oriented composition, yields monads and comonads from adjunctions

Constructors

ACompF (CompF f g a) 

Instances

Composition ACompF 
MonadState e (ACompF ((->) e) ((,) e)) 
ComonadContext e (ACompF ((,) e) ((->) e)) 
Functor f => HFunctor (ACompF f) 
Adjunction f g => Monad (ACompF g f) 
(Functor f, Functor g) => Functor (ACompF f g) 
Adjunction f g => Applicative (ACompF g f) 
(Full f, Full g) => Full (ACompF f g) 
(ExpFunctor f, ExpFunctor g) => ExpFunctor (ACompF f g) 
Adjunction f g => Copointed (ACompF f g) 
Adjunction f g => Pointed (ACompF g f) 
Adjunction f g => Comonad (ACompF f g) 

Every Right Adjoint is Representable

repAdjunction :: Adjunction f g => (f () -> a) -> g aSource

unrepAdjunction :: Adjunction f g => g a -> f () -> aSource