| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Category.Instance.Product
Contents
Documentation
data ((c :: j1 +-> k1) :**: (d :: j2 +-> k2)) (a :: (k1, k2)) (b :: (j1, j2)) where Source Github #
Constructors
| (:**:) | |
Instances
| (ThinProfunctor p, ThinProfunctor q) => ThinProfunctor (p :**: q :: (k1, k2) -> (j1, j2) -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Product | |
| (MonoidalProfunctor p, MonoidalProfunctor q) => MonoidalProfunctor (p :**: q :: (k1, k2) -> (j1, j2) -> Type) Source Github # | |
| (Profunctor p, Profunctor q) => Profunctor (p :**: q :: (k1, k2) -> (j1, j2) -> Type) Source Github # | |
Defined in Proarrow.Category.Instance.Product Methods dimap :: forall (c :: (k1, k2)) (a :: (k1, k2)) (b :: (j1, j2)) (d :: (j1, j2)). (c ~> a) -> (b ~> d) -> (p :**: q) a b -> (p :**: q) c d Source Github # lmap :: forall (c :: (k1, k2)) (a :: (k1, k2)) (b :: (j1, j2)). (c ~> a) -> (p :**: q) a b -> (p :**: q) c b Source Github # rmap :: forall (b :: (j1, j2)) (d :: (j1, j2)) (a :: (k1, k2)). (b ~> d) -> (p :**: q) a b -> (p :**: q) a d Source Github # (\\) :: forall (a :: (k1, k2)) (b :: (j1, j2)) r. ((Ob a, Ob b) => r) -> (p :**: q) a b -> r Source Github # | |
| (Representable p, Representable q) => Representable (p :**: q :: (k1, k2) -> (j1, j2) -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Representable Methods index :: forall (a :: (k1, k2)) (b :: (j1, j2)). (p :**: q) a b -> a ~> ((p :**: q) % b) Source Github # tabulate :: forall (b :: (j1, j2)) (a :: (k1, k2)). Ob b => (a ~> ((p :**: q) % b)) -> (p :**: q) a b Source Github # repMap :: forall (a :: (j1, j2)) (b :: (j1, j2)). (a ~> b) -> ((p :**: q) % a) ~> ((p :**: q) % b) Source Github # repUniv :: forall (a :: (j1, j2)). Ob a => (p :**: q) ((p :**: q) % a) a Source Github # | |
| (DaggerProfunctor p, DaggerProfunctor q) => DaggerProfunctor (p :**: q :: (j1, j2) -> (j1, j2) -> Type) Source Github # | |
| (Promonad p, Promonad q) => Promonad (p :**: q :: (j1, j2) -> (j1, j2) -> Type) Source Github # | The product promonad of promonads |
| type (p :**: q :: (k1, k2) -> (j1, j2) -> Type) % ('(a, b) :: (j1, j2)) Source Github # | |
| type HasArrow (p :**: q :: (k1, k2) -> (j1, j2) -> Type) ('(a1, a2) :: (k1, k2)) ('(b1, b2) :: (j1, j2)) Source Github # | |
data family Fst :: (j, k) +-> j Source Github #
Instances
| (CategoryOf j, CategoryOf k) => FunctorForRep (Fst :: (j, k) +-> j) Source Github # | |
| type (Fst :: (j, k) +-> j) @ ('(a, b) :: (j, k)) Source Github # | |
Defined in Proarrow.Category.Instance.Product | |
data family Snd :: (j, k) +-> k Source Github #
Instances
| (CategoryOf j, CategoryOf k) => FunctorForRep (Snd :: (j, k) +-> k) Source Github # | |
| type (Snd :: (j, k) +-> k) @ ('(a, b) :: (j, k)) Source Github # | |
Defined in Proarrow.Category.Instance.Product | |
data family Diag :: k +-> (k, k) Source Github #
Instances
| CategoryOf k => FunctorForRep (Diag :: k +-> (k, k)) Source Github # | |
| HasBinaryCoproducts k => Corepresentable (Rep (Diag :: k +-> (k, k)) :: (k, k) -> k -> Type) Source Github # | The left adjoint to the diagonal functor. |
Defined in Proarrow.Colimit.BinaryCoproduct Methods coindex :: forall (a :: (k, k)) (b :: k). Rep (Diag :: k +-> (k, k)) a b -> (Rep (Diag :: k +-> (k, k)) %% a) ~> b Source Github # cotabulate :: forall (a :: (k, k)) (b :: k). Ob a => ((Rep (Diag :: k +-> (k, k)) %% a) ~> b) -> Rep (Diag :: k +-> (k, k)) a b Source Github # corepMap :: forall (a :: (k, k)) (b :: (k, k)). (a ~> b) -> (Rep (Diag :: k +-> (k, k)) %% a) ~> (Rep (Diag :: k +-> (k, k)) %% b) Source Github # corepUniv :: forall (a :: (k, k)). Ob a => Rep (Diag :: k +-> (k, k)) a (Rep (Diag :: k +-> (k, k)) %% a) Source Github # | |
| HasBinaryProducts k => Representable (Corep (Diag :: k +-> (k, k)) :: k -> (k, k) -> Type) Source Github # | The right adjoint to the diagonal functor. |
Defined in Proarrow.Limit.BinaryProduct Methods index :: forall (a :: k) (b :: (k, k)). Corep (Diag :: k +-> (k, k)) a b -> a ~> (Corep (Diag :: k +-> (k, k)) % b) Source Github # tabulate :: forall (b :: (k, k)) (a :: k). Ob b => (a ~> (Corep (Diag :: k +-> (k, k)) % b)) -> Corep (Diag :: k +-> (k, k)) a b Source Github # repMap :: forall (a :: (k, k)) (b :: (k, k)). (a ~> b) -> (Corep (Diag :: k +-> (k, k)) % a) ~> (Corep (Diag :: k +-> (k, k)) % b) Source Github # repUniv :: forall (a :: (k, k)). Ob a => Corep (Diag :: k +-> (k, k)) (Corep (Diag :: k +-> (k, k)) % a) a Source Github # | |
| type (Diag :: k +-> (k, k)) @ (a :: k) Source Github # | |
Defined in Proarrow.Category.Instance.Product | |
| type (Rep (Diag :: k +-> (k, k)) :: (k, k) -> k -> Type) %% ('(a, b) :: (k, k)) Source Github # | |
| type (Corep (Diag :: k +-> (k, k)) :: k -> (k, k) -> Type) % ('(a, b) :: (k, k)) Source Github # | |
checkDiscrete :: forall j k (a :: (j, k)) (b :: (j, k)) r. (Discrete j, Discrete k) => Hom (j, k) a b -> (a ~ b => r) -> r Source Github #
checkCodiscreteProfunctor :: forall {j1} {k1} {j2} {k2} (p :: j1 +-> k1) (q :: j2 +-> k2) (a :: (k1, k2)) (b :: (j1, j2)). (CodiscreteProfunctor p, CodiscreteProfunctor q, Ob a, Ob b) => (p :**: q) a b Source Github #
Orphan instances
| (CategoryOf k1, CategoryOf k2) => CategoryOf (k1, k2) Source Github # | The product of two categories. |