kan-extensions-5.2.6: Kan extensions, Kan lifts, the Yoneda lemma, and (co)density (co)monads
Copyright(C) 2013-2016 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
PortabilityGADTs, TFs, MPTCs
Safe HaskellTrustworthy
LanguageHaskell2010

Data.Functor.Contravariant.Coyoneda

Description

The co-Yoneda lemma for presheafs states that f is naturally isomorphic to Coyoneda f.

Synopsis

Documentation

data Coyoneda f a where Source #

A Contravariant functor (aka presheaf) suitable for Yoneda reduction.

http://ncatlab.org/nlab/show/Yoneda+reduction

Constructors

Coyoneda :: (a -> b) -> f b -> Coyoneda f a 

Instances

Instances details
Representable f => Representable (Coyoneda f) Source # 
Instance details

Defined in Data.Functor.Contravariant.Coyoneda

Associated Types

type Rep (Coyoneda f) #

Methods

tabulate :: (a -> Rep (Coyoneda f)) -> Coyoneda f a #

index :: Coyoneda f a -> a -> Rep (Coyoneda f) #

contramapWithRep :: (b -> Either a (Rep (Coyoneda f))) -> Coyoneda f a -> Coyoneda f b #

Contravariant (Coyoneda f) Source # 
Instance details

Defined in Data.Functor.Contravariant.Coyoneda

Methods

contramap :: (a' -> a) -> Coyoneda f a -> Coyoneda f a' #

(>$) :: b -> Coyoneda f b -> Coyoneda f a #

Adjunction f g => Adjunction (Coyoneda f) (Coyoneda g) Source # 
Instance details

Defined in Data.Functor.Contravariant.Coyoneda

Methods

unit :: a -> Coyoneda g (Coyoneda f a) #

counit :: a -> Coyoneda f (Coyoneda g a) #

leftAdjunct :: (b -> Coyoneda f a) -> a -> Coyoneda g b #

rightAdjunct :: (a -> Coyoneda g b) -> b -> Coyoneda f a #

type Rep (Coyoneda f) Source # 
Instance details

Defined in Data.Functor.Contravariant.Coyoneda

type Rep (Coyoneda f) = Rep f

liftCoyoneda :: f a -> Coyoneda f a Source #

Coyoneda "expansion" of a presheaf

liftCoyoneda . lowerCoyonedaid
lowerCoyoneda . liftCoyonedaid

lowerCoyoneda :: Contravariant f => Coyoneda f a -> f a Source #

Coyoneda reduction on a presheaf

hoistCoyoneda :: (forall a. f a -> g a) -> Coyoneda f b -> Coyoneda g b Source #

Lift a natural transformation from f to g to a natural transformation from Coyoneda f to Coyoneda g.