Copyright | (C) 2013-2016 Edward Kmett |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | provisional |
Portability | GADTs, TFs, MPTCs |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
The co-Yoneda lemma for presheafs states that f
is naturally isomorphic to
.Coyoneda
f
Synopsis
- data Coyoneda (f :: Type -> Type) a where
- liftCoyoneda :: f a -> Coyoneda f a
- lowerCoyoneda :: Contravariant f => Coyoneda f a -> f a
- hoistCoyoneda :: (forall a. f a -> g a) -> Coyoneda f b -> Coyoneda g b
Documentation
data Coyoneda (f :: Type -> Type) a where Source #
A Contravariant
functor (aka presheaf) suitable for Yoneda reduction.
Instances
Representable f => Representable (Coyoneda f) Source # | |
Defined in Data.Functor.Contravariant.Coyoneda | |
Contravariant (Coyoneda f) Source # | |
Adjunction f g => Adjunction (Coyoneda f) (Coyoneda g) Source # | |
type Rep (Coyoneda f) Source # | |
Defined in Data.Functor.Contravariant.Coyoneda |
liftCoyoneda :: f a -> Coyoneda f a Source #
Coyoneda "expansion" of a presheaf
liftCoyoneda
.lowerCoyoneda
≡id
lowerCoyoneda
.liftCoyoneda
≡id
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
.