Safe Haskell | None |
---|---|
Language | Haskell2010 |
Proarrow.Category.Instance.Product
Contents
Documentation
type family Fst (a1 :: (a, b)) :: a where ... Source Comments #
Equations
Fst ('(a2, b2) :: (a1, b1)) = a2 |
type family Snd (a1 :: (a, b)) :: b where ... Source Comments #
Equations
Snd ('(a2, b2) :: (a1, b1)) = b2 |
data ((c :: CAT k1) :**: (d :: CAT k2)) (a :: (k1, k2)) (b :: (k1, k2)) where Source Comments #
Constructors
(:**:) :: forall {k1} {k2} (c :: CAT k1) (a1 :: k1) (b1 :: k1) (d :: CAT k2) (a2 :: k2) (b2 :: k2). c a1 b1 -> d a2 b2 -> (c :**: d) '(a1, a2) '(b1, b2) |
Instances
(Profunctor p, Profunctor q) => Profunctor (p :**: q :: (k1, k2) -> (k1, k2) -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Product | |
(Representable p, Representable q) => Representable (p :**: q :: (k1, k2) -> (k1, k2) -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Product Methods index :: forall (a :: (k1, k2)) (b :: (k1, k2)). (p :**: q) a b -> a ~> ((p :**: q) % b) Source Comments # tabulate :: forall (b :: (k1, k2)) (a :: (k1, k2)). Ob b => (a ~> ((p :**: q) % b)) -> (p :**: q) a b Source Comments # repMap :: forall (a :: (k1, k2)) (b :: (k1, k2)). (a ~> b) -> ((p :**: q) % a) ~> ((p :**: q) % b) Source Comments # | |
(Promonad p, Promonad q) => Promonad (p :**: q :: (k1, k2) -> (k1, k2) -> Type) Source Comments # | The product promonad of promonads |
type (p :**: q :: (k1, k2) -> (k1, k2) -> Type) % ('(a, b) :: (k1, k2)) Source Comments # | |
Orphan instances
(Monoidal j, Monoidal k) => Monoidal (j, k) Source Comments # | |||||
Associated Types
Methods par :: forall (a :: (j, k)) (b :: (j, k)) (c :: (j, k)) (d :: (j, k)). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: (j, k)). Obj a -> ((Unit :: (j, k)) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: (j, k)). Obj a -> a ~> ((Unit :: (j, k)) ** a) Source Comments # rightUnitor :: forall (a :: (j, k)). Obj a -> (a ** (Unit :: (j, k))) ~> a Source Comments # rightUnitorInv :: forall (a :: (j, k)). Obj a -> a ~> (a ** (Unit :: (j, k))) Source Comments # associator :: forall (a :: (j, k)) (b :: (j, k)) (c :: (j, k)). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: (j, k)) (b :: (j, k)) (c :: (j, k)). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||
(SymMonoidal j, SymMonoidal k) => SymMonoidal (j, k) Source Comments # | |||||
(CategoryOf k1, CategoryOf k2) => CategoryOf (k1, k2) Source Comments # | |||||