Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
newtype KIND Source Comments #
Instances
data Cat (a :: KIND) (b :: KIND) where Source Comments #
Instances
TracedMonoidalProfunctor Cat Source Comments # | |
Defined in Proarrow.Category.Instance.Cat trace :: forall (u :: KIND) (x :: KIND) (y :: KIND). (Ob x, Ob y, Ob u) => Cat (x ** u) (y ** u) -> Cat x y Source Comments # trace' :: forall (x :: KIND) (x' :: KIND) (y :: KIND) (y' :: KIND) (u :: KIND) (u' :: KIND). (x ~> x') -> (y ~> y') -> (u ~> u') -> Cat (x' ** u') (y ** u) -> Cat x y' Source Comments # | |
Promonad Cat Source Comments # | |
MonoidalProfunctor Cat Source Comments # | |
Profunctor Cat Source Comments # | |
data Terminate (a :: ()) (b :: k) where Source Comments #
Instances
CategoryOf k => Profunctor (Terminate :: () -> k -> Type) Source Comments # | |
data FstCat (a :: j) (b :: (j, k)) where Source Comments #
Instances
(CategoryOf j, CategoryOf k) => Profunctor (FstCat :: j -> (j, k) -> Type) Source Comments # | |
data SndCat (a :: k) (b :: (j, k)) where Source Comments #
Instances
(CategoryOf j, CategoryOf k) => Profunctor (SndCat :: k -> (j, k) -> Type) Source Comments # | |
data ((p :: k +-> i) :&&&: (q :: k +-> j)) (a :: (i, j)) (b :: k) where Source Comments #
(:&&&:) :: forall {k} {i} {j} (p :: k +-> i) (a1 :: i) (b :: k) (q :: k +-> j) (b1 :: j). p a1 b -> q b1 b -> (p :&&&: q) '(a1, b1) b |
Instances
(Profunctor p, Profunctor q) => Profunctor (p :&&&: q :: (i, j) -> k -> Type) Source Comments # | |
data Swap (p :: h +-> i) (q :: j +-> k) (a :: (k, i)) (b :: (h, j)) where Source Comments #
Swap :: forall {h} {i} (p :: h +-> i) (a1 :: i) (b1 :: h) (q1 :: h +-> i) (c :: i) (d :: h). p a1 b1 -> q1 c d -> Swap p q1 '(a1, c) '(d, b1) |
Instances
(Profunctor p, Profunctor q) => Profunctor (Swap p q :: (k, i) -> (h, j) -> Type) Source Comments # | |
data Curry (p :: (i, j) +-> k) (a :: (k, OPPOSITE j)) (b :: i) where Source Comments #
Curry :: forall {i} {j} {k} (p :: (i, j) +-> k) (c :: k) (b :: i) (b1 :: j). p c '(b, b1) -> Curry p '(c, 'OP b1) b |
Instances
(Profunctor p, CategoryOf i, CategoryOf j) => Profunctor (Curry p :: (k, OPPOSITE j) -> i -> Type) Source Comments # | |
data Uncurry (p :: i +-> (k, OPPOSITE j)) (a :: k) (b :: (i, j)) where Source Comments #
Uncurry :: forall {i} {k} {j} (p :: i +-> (k, OPPOSITE j)) (a :: k) (b1 :: j) (a1 :: i). p '(a, 'OP b1) a1 -> Uncurry p a '(a1, b1) |
Instances
(Profunctor p, CategoryOf j, CategoryOf k) => Profunctor (Uncurry p :: k -> (i, j) -> Type) Source Comments # | |
data DoubleNeg (a :: k) (b :: DUAL (DUAL k)) where Source Comments #
Instances
CategoryOf k => Profunctor (DoubleNeg :: k -> DUAL (DUAL k) -> Type) Source Comments # | |
data DistribDual (p :: j +-> j') (q :: k +-> k') (a :: (DUAL j, DUAL k)) (b :: DUAL (j', k')) where Source Comments #
DistribDual :: forall {j} {j'} {k} {k'} (p :: j +-> j') (c :: j') (a1 :: j) (q :: k +-> k') (d :: k') (b1 :: k). p c a1 -> q d b1 -> DistribDual p q '(Dual a1, Dual b1) '('(), 'OP '(c, d)) |
Instances
(Profunctor p, Profunctor q) => Profunctor (DistribDual p q :: (DUAL j, DUAL k) -> DUAL (j', k') -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Cat dimap :: forall (c :: (DUAL j, DUAL k)) (a :: (DUAL j, DUAL k)) (b :: DUAL (j', k')) (d :: DUAL (j', k')). (c ~> a) -> (b ~> d) -> DistribDual p q a b -> DistribDual p q c d Source Comments # (\\) :: forall (a :: (DUAL j, DUAL k)) (b :: DUAL (j', k')) r. ((Ob a, Ob b) => r) -> DistribDual p q a b -> r Source Comments # |