| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Profunctor.Instance.Yoneda
Contents
Description
Synopsis
- data Yoneda (p :: j +-> k) (a :: k) (b :: j) where
- yoneda :: forall j k (p :: j +-> k). (CategoryOf j, CategoryOf k) => Yoneda p :~> p
- mkYoneda :: forall {j} {k} (p :: j +-> k). Profunctor p => p :~> Yoneda p
- data Yo (a :: k) (b :: OPPOSITE j) (c :: k) (d :: j) where
Documentation
data Yoneda (p :: j +-> k) (a :: k) (b :: j) where Source Github #
The cofree profunctor on p (the HasCofree instance for Profunctor): natural
transformations out of the Yoneda embedding Yo. Equivalent to p when p is already a
profunctor (yoneda/mkYoneda).
Constructors
| Yoneda | |
Instances
| (CategoryOf j, CategoryOf k) => Profunctor (Yoneda p :: k -> j -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Instance.Yoneda Methods dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Yoneda p a b -> Yoneda p c d Source Github # lmap :: forall (c :: k) (a :: k) (b :: j). (c ~> a) -> Yoneda p a b -> Yoneda p c b Source Github # rmap :: forall (b :: j) (d :: j) (a :: k). (b ~> d) -> Yoneda p a b -> Yoneda p a d Source Github # (\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Yoneda p a b -> r Source Github # | |
| Functor (Yoneda :: (j +-> k) -> k -> j -> Type) Source Github # | |
| Promonad (Costar (Yoneda :: (j +-> k) -> k -> j -> Type) :: (j +-> k) -> (k -> j -> Type) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Instance.Yoneda Methods id :: forall (a :: j +-> k). Ob a => Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a a Source Github # (.) :: forall (b :: j +-> k) (c :: j +-> k) (a :: j +-> k). Costar (Yoneda :: (j +-> k) -> k -> j -> Type) b c -> Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a b -> Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a c Source Github # | |
| Promonad (Star (Yoneda :: (j +-> k) -> k -> j -> Type) :: (k -> j -> Type) -> (j +-> k) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Instance.Yoneda Methods id :: forall (a :: k -> j -> Type). Ob a => Star (Yoneda :: (j +-> k) -> k -> j -> Type) a a Source Github # (.) :: forall (b :: k -> j -> Type) (c :: k -> j -> Type) (a :: k -> j -> Type). Star (Yoneda :: (j +-> k) -> k -> j -> Type) b c -> Star (Yoneda :: (j +-> k) -> k -> j -> Type) a b -> Star (Yoneda :: (j +-> k) -> k -> j -> Type) a c Source Github # | |
yoneda :: forall j k (p :: j +-> k). (CategoryOf j, CategoryOf k) => Yoneda p :~> p Source Github #
data Yo (a :: k) (b :: OPPOSITE j) (c :: k) (d :: j) where Source Github #
Yoneda embedding
Constructors
| Yo :: forall {k} {j} (c :: k) (a :: k) (b1 :: j) (d :: j). (c ~> a) -> (b1 ~> d) -> Yo a ('OP b1) c d |
Instances
| (CategoryOf k, forall (p :: k +-> k) (q :: k +-> k). w p q => Sub (IsoFl :: (k +-> k) -> (k +-> k) -> Constraint) p q) => Prostrong (w :: FLAVOR k k) (Yo a ('OP b) :: k -> k -> Type) Source Github # | Any flavor whose optics are isos has strength for the |
| CategoryOf k => Prostrong (Flip (IsoFl :: (k +-> k) -> (k +-> k) -> Constraint) :: (k +-> k) -> (k +-> k) -> Constraint) (Yo a ('OP b) :: k -> k -> Type) Source Github # |
|
| (FiniteCat j, FiniteCat k, Ob a, Ob b) => Finitary (Yo a ('OP b) :: k -> j -> Type) Source Github # | The embedding is finitary when the arrows are: its elements over |
Defined in Proarrow.Profunctor.Instance.Yoneda Methods size :: forall (a0 :: k) (b0 :: j). (Ob a0, Ob b0) => Natural Source Github # toIndex :: forall (a0 :: k) (b0 :: j). (Ob a0, Ob b0) => Yo a ('OP b) a0 b0 -> Natural Source Github # fromIndex :: forall (a0 :: k) (b0 :: j). (Ob a0, Ob b0) => Natural -> Yo a ('OP b) a0 b0 Source Github # elements :: forall (a0 :: k) (b0 :: j). (Ob a0, Ob b0) => [Yo a ('OP b) a0 b0] Source Github # | |
| (CategoryOf j, CategoryOf k) => Profunctor (Yo a ('OP b) :: k -> j -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Instance.Yoneda Methods dimap :: forall (c :: k) (a0 :: k) (b0 :: j) (d :: j). (c ~> a0) -> (b0 ~> d) -> Yo a ('OP b) a0 b0 -> Yo a ('OP b) c d Source Github # lmap :: forall (c :: k) (a0 :: k) (b0 :: j). (c ~> a0) -> Yo a ('OP b) a0 b0 -> Yo a ('OP b) c b0 Source Github # rmap :: forall (b0 :: j) (d :: j) (a0 :: k). (b0 ~> d) -> Yo a ('OP b) a0 b0 -> Yo a ('OP b) a0 d Source Github # (\\) :: forall (a0 :: k) (b0 :: j) r. ((Ob a0, Ob b0) => r) -> Yo a ('OP b) a0 b0 -> r Source Github # | |
| (CategoryOf j, CategoryOf k) => Functor (Yo :: k -> OPPOSITE j -> k -> j -> Type) Source Github # | |
| (Elem HasBinaryCoproducts cs, Elem HasInitialObject cs, CategoryOf j) => Sheaf Sums (Yo x ('OP b) :: FREE cs p -> j -> Type) Source Github # | Sums are colimits, so the representables are sheaves for The initial object is needed too. An element of |
| (CategoryOf j, CategoryOf k) => Functor (Yo a :: OPPOSITE j -> k -> j -> Type) Source Github # | |
Orphan instances
| HasCofree (Profunctor :: (j +-> k) -> Constraint) Source Github # | |
Methods lower :: forall (a :: j +-> k). Ob a => Cofree (Profunctor :: (j +-> k) -> Constraint) a ~> a Source Github # unfoldMap :: forall (a :: j +-> k) (b :: j +-> k). Profunctor a => (a ~> b) -> a ~> Cofree (Profunctor :: (j +-> k) -> Constraint) b Source Github # | |