| Portability | MPTCs, fundeps |
|---|---|
| Stability | provisional |
| Maintainer | Edward Kmett <ekmett@gmail.com> |
| Safe Haskell | Trustworthy |
Data.Functor.Yoneda
Description
The co-Yoneda lemma states that
f a is isomorphic to (forall r. (a -> r) -> f a)
This is described in a rather intuitive fashion by Dan Piponi in
- newtype Yoneda f a = Yoneda {
- runYoneda :: forall b. (a -> b) -> f b
- liftYoneda :: Functor f => f a -> Yoneda f a
- lowerYoneda :: Yoneda f a -> f a
- maxF :: (Functor f, Ord (f a)) => Yoneda f a -> Yoneda f a -> Yoneda f a
- minF :: (Functor f, Ord (f a)) => Yoneda f a -> Yoneda f a -> Yoneda f a
- maxM :: (Monad m, Ord (m a)) => Yoneda m a -> Yoneda m a -> Yoneda m a
- minM :: (Monad m, Ord (m a)) => Yoneda m a -> Yoneda m a -> Yoneda m a
- yonedaToRan :: Yoneda f a -> Ran Identity f a
- ranToYoneda :: Ran Identity f a -> Yoneda f a
- yonedaToRift :: Yoneda f a -> Rift Identity f a
- riftToYoneda :: Rift Identity f a -> Yoneda f a
Documentation
Instances
liftYoneda :: Functor f => f a -> Yoneda f aSource
lowerYoneda :: Yoneda f a -> f aSource
as a right Kan extension
yonedaToRan :: Yoneda f a -> Ran Identity f aSource
Yoneda f is the right Kan extension of f along the Identity functor.
yonedaToRan.ranToYoneda≡idranToYoneda.yonedaToRan≡id
ranToYoneda :: Ran Identity f a -> Yoneda f aSource
as a right Kan lift
yonedaToRift :: Yoneda f a -> Rift Identity f aSource
Yoneda f is the right Kan lift of f along the Identity functor.
yonedaToRift.riftToYoneda≡idriftToYoneda.yonedaToRift≡id
riftToYoneda :: Rift Identity f a -> Yoneda f aSource