product-profunctors-0.6.3.1: product-profunctors

Safe HaskellSafe
LanguageHaskell98

Data.Profunctor.Product

Documentation

class Profunctor p => ProductProfunctor p where Source

Methods

empty :: p () () Source

(***!) :: p a b -> p a' b' -> p (a, a') (b, b') Source

class Contravariant f => ProductContravariant f where Source

Methods

point :: f () Source

(***<) :: f a -> f b -> f (a, b) Source

defaultEmpty :: Applicative (p ()) => p () () Source

defaultProfunctorProduct :: (Applicative (p (a, a')), Profunctor p) => p a b -> p a' b' -> p (a, a') (b, b') Source

defaultPoint :: Monoid (p ()) => p () Source

defaultContravariantProduct :: (Contravariant f, Monoid (f (a, b))) => f a -> f b -> f (a, b) Source

data AndArrow arr z a b Source

Constructors

AndArrow 

Fields

runAndArrow :: arr z b
 

Instances

class Profunctor p => SumProfunctor p where Source

Methods

(+++!) :: p a b -> p a' b' -> p (Either a a') (Either b b') Source

Instances

list :: (ProductProfunctor p, SumProfunctor p) => p a b -> p [a] [b] Source

pT1 :: ProductProfunctor p => T1 (p a1 b1) -> p (T1 a1) (T1 b1) Source

pT2 :: ProductProfunctor p => T2 (p a1 b1) (p a2 b2) -> p (T2 a1 a2) (T2 b1 b2) Source

chain :: ProductProfunctor p => (t -> p a2 b2) -> (p a1 b1, t) -> p (a1, a2) (b1, b2) Source

pT3 :: ProductProfunctor p => T3 (p a1 b1) (p a2 b2) (p a3 b3) -> p (T3 a1 a2 a3) (T3 b1 b2 b3) Source

pT4 :: ProductProfunctor p => T4 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) -> p (T4 a1 a2 a3 a4) (T4 b1 b2 b3 b4) Source

pT5 :: ProductProfunctor p => T5 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) -> p (T5 a1 a2 a3 a4 a5) (T5 b1 b2 b3 b4 b5) Source

pT6 :: ProductProfunctor p => T6 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) -> p (T6 a1 a2 a3 a4 a5 a6) (T6 b1 b2 b3 b4 b5 b6) Source

pT7 :: ProductProfunctor p => T7 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) -> p (T7 a1 a2 a3 a4 a5 a6 a7) (T7 b1 b2 b3 b4 b5 b6 b7) Source

pT8 :: ProductProfunctor p => T8 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) -> p (T8 a1 a2 a3 a4 a5 a6 a7 a8) (T8 b1 b2 b3 b4 b5 b6 b7 b8) Source

pT9 :: ProductProfunctor p => T9 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) -> p (T9 a1 a2 a3 a4 a5 a6 a7 a8 a9) (T9 b1 b2 b3 b4 b5 b6 b7 b8 b9) Source

pT10 :: ProductProfunctor p => T10 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) -> p (T10 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10) (T10 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10) Source

pT11 :: ProductProfunctor p => T11 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) (p a11 b11) -> p (T11 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11) (T11 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11) Source

pT12 :: ProductProfunctor p => T12 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) (p a11 b11) (p a12 b12) -> p (T12 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12) (T12 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12) Source

pT13 :: ProductProfunctor p => T13 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) (p a11 b11) (p a12 b12) (p a13 b13) -> p (T13 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13) (T13 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13) Source

pT14 :: ProductProfunctor p => T14 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) (p a11 b11) (p a12 b12) (p a13 b13) (p a14 b14) -> p (T14 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14) (T14 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14) Source

pT15 :: ProductProfunctor p => T15 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) (p a11 b11) (p a12 b12) (p a13 b13) (p a14 b14) (p a15 b15) -> p (T15 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15) (T15 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15) Source

pT16 :: ProductProfunctor p => T16 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) (p a11 b11) (p a12 b12) (p a13 b13) (p a14 b14) (p a15 b15) (p a16 b16) -> p (T16 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16) (T16 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b16) Source

pT17 :: ProductProfunctor p => T17 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) (p a11 b11) (p a12 b12) (p a13 b13) (p a14 b14) (p a15 b15) (p a16 b16) (p a17 b17) -> p (T17 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17) (T17 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b16 b17) Source

pT18 :: ProductProfunctor p => T18 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) (p a11 b11) (p a12 b12) (p a13 b13) (p a14 b14) (p a15 b15) (p a16 b16) (p a17 b17) (p a18 b18) -> p (T18 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18) (T18 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b16 b17 b18) Source

pT19 :: ProductProfunctor p => T19 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) (p a11 b11) (p a12 b12) (p a13 b13) (p a14 b14) (p a15 b15) (p a16 b16) (p a17 b17) (p a18 b18) (p a19 b19) -> p (T19 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19) (T19 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b16 b17 b18 b19) Source

pT20 :: ProductProfunctor p => T20 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) (p a11 b11) (p a12 b12) (p a13 b13) (p a14 b14) (p a15 b15) (p a16 b16) (p a17 b17) (p a18 b18) (p a19 b19) (p a20 b20) -> p (T20 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20) (T20 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b16 b17 b18 b19 b20) Source

pT21 :: ProductProfunctor p => T21 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) (p a11 b11) (p a12 b12) (p a13 b13) (p a14 b14) (p a15 b15) (p a16 b16) (p a17 b17) (p a18 b18) (p a19 b19) (p a20 b20) (p a21 b21) -> p (T21 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21) (T21 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b16 b17 b18 b19 b20 b21) Source

pT22 :: ProductProfunctor p => T22 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) (p a11 b11) (p a12 b12) (p a13 b13) (p a14 b14) (p a15 b15) (p a16 b16) (p a17 b17) (p a18 b18) (p a19 b19) (p a20 b20) (p a21 b21) (p a22 b22) -> p (T22 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22) (T22 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b16 b17 b18 b19 b20 b21 b22) Source

pT23 :: ProductProfunctor p => T23 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) (p a11 b11) (p a12 b12) (p a13 b13) (p a14 b14) (p a15 b15) (p a16 b16) (p a17 b17) (p a18 b18) (p a19 b19) (p a20 b20) (p a21 b21) (p a22 b22) (p a23 b23) -> p (T23 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23) (T23 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b16 b17 b18 b19 b20 b21 b22 b23) Source

pT24 :: ProductProfunctor p => T24 (p a1 b1) (p a2 b2) (p a3 b3) (p a4 b4) (p a5 b5) (p a6 b6) (p a7 b7) (p a8 b8) (p a9 b9) (p a10 b10) (p a11 b11) (p a12 b12) (p a13 b13) (p a14 b14) (p a15 b15) (p a16 b16) (p a17 b17) (p a18 b18) (p a19 b19) (p a20 b20) (p a21 b21) (p a22 b22) (p a23 b23) (p a24 b24) -> p (T24 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24) (T24 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b16 b17 b18 b19 b20 b21 b22 b23 b24) Source

convert :: Profunctor p => (a2 -> a1) -> (tp -> tTp) -> (b1 -> b2) -> (tTp -> p a1 b1) -> tp -> p a2 b2 Source

p0 :: ProductProfunctor p => () -> p () () Source

p1 :: ProductProfunctor p => p a1 b1 -> p a1 b1 Source

p2 :: ProductProfunctor p => (p a1 b1, p a2 b2) -> p (a1, a2) (b1, b2) Source

p3 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3) -> p (a1, a2, a3) (b1, b2, b3) Source

p4 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4) -> p (a1, a2, a3, a4) (b1, b2, b3, b4) Source

p5 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5) -> p (a1, a2, a3, a4, a5) (b1, b2, b3, b4, b5) Source

p6 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6) -> p (a1, a2, a3, a4, a5, a6) (b1, b2, b3, b4, b5, b6) Source

p7 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7) -> p (a1, a2, a3, a4, a5, a6, a7) (b1, b2, b3, b4, b5, b6, b7) Source

p8 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8) -> p (a1, a2, a3, a4, a5, a6, a7, a8) (b1, b2, b3, b4, b5, b6, b7, b8) Source

p9 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9) (b1, b2, b3, b4, b5, b6, b7, b8, b9) Source

p10 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10) Source

p11 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10, p a11 b11) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11) Source

p12 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10, p a11 b11, p a12 b12) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12) Source

p13 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10, p a11 b11, p a12 b12, p a13 b13) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) Source

p14 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10, p a11 b11, p a12 b12, p a13 b13, p a14 b14) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14) Source

p15 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10, p a11 b11, p a12 b12, p a13 b13, p a14 b14, p a15 b15) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15) Source

p16 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10, p a11 b11, p a12 b12, p a13 b13, p a14 b14, p a15 b15, p a16 b16) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16) Source

p17 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10, p a11 b11, p a12 b12, p a13 b13, p a14 b14, p a15 b15, p a16 b16, p a17 b17) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17) Source

p18 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10, p a11 b11, p a12 b12, p a13 b13, p a14 b14, p a15 b15, p a16 b16, p a17 b17, p a18 b18) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18) Source

p19 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10, p a11 b11, p a12 b12, p a13 b13, p a14 b14, p a15 b15, p a16 b16, p a17 b17, p a18 b18, p a19 b19) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19) Source

p20 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10, p a11 b11, p a12 b12, p a13 b13, p a14 b14, p a15 b15, p a16 b16, p a17 b17, p a18 b18, p a19 b19, p a20 b20) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20) Source

p21 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10, p a11 b11, p a12 b12, p a13 b13, p a14 b14, p a15 b15, p a16 b16, p a17 b17, p a18 b18, p a19 b19, p a20 b20, p a21 b21) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21) Source

p22 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10, p a11 b11, p a12 b12, p a13 b13, p a14 b14, p a15 b15, p a16 b16, p a17 b17, p a18 b18, p a19 b19, p a20 b20, p a21 b21, p a22 b22) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22) Source

p23 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10, p a11 b11, p a12 b12, p a13 b13, p a14 b14, p a15 b15, p a16 b16, p a17 b17, p a18 b18, p a19 b19, p a20 b20, p a21 b21, p a22 b22, p a23 b23) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23) Source

p24 :: ProductProfunctor p => (p a1 b1, p a2 b2, p a3 b3, p a4 b4, p a5 b5, p a6 b6, p a7 b7, p a8 b8, p a9 b9, p a10 b10, p a11 b11, p a12 b12, p a13 b13, p a14 b14, p a15 b15, p a16 b16, p a17 b17, p a18 b18, p a19 b19, p a20 b20, p a21 b21, p a22 b22, p a23 b23, p a24 b24) -> p (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24) (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24) Source