module Contravariant.Extras.ContrazipLifting where

import Contravariant.Extras.Contrazip
import Contravariant.Extras.Prelude

contrazipLifting2 :: (Divisible f) => (forall x. g x -> f x) -> g a1 -> g a2 -> f (a1, a2)
contrazipLifting2 :: forall (f :: * -> *) (g :: * -> *) a1 a2.
Divisible f =>
(forall x. g x -> f x) -> g a1 -> g a2 -> f (a1, a2)
contrazipLifting2 forall x. g x -> f x
fn g a1
a g a2
b = forall (f :: * -> *) a1 a2.
Divisible f =>
f a1 -> f a2 -> f (a1, a2)
contrazip2 (forall x. g x -> f x
fn g a1
a) (forall x. g x -> f x
fn g a2
b)

contrazipLifting3 :: (Divisible f) => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> f (a1, a2, a3)
contrazipLifting3 :: forall (f :: * -> *) (g :: * -> *) a1 a2 a3.
Divisible f =>
(forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> f (a1, a2, a3)
contrazipLifting3 forall x. g x -> f x
fn g a1
a g a2
b g a3
c = forall (f :: * -> *) a1 a2 a3.
Divisible f =>
f a1 -> f a2 -> f a3 -> f (a1, a2, a3)
contrazip3 (forall x. g x -> f x
fn g a1
a) (forall x. g x -> f x
fn g a2
b) (forall x. g x -> f x
fn g a3
c)

contrazipLifting4 :: (Divisible f) => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> f (a1, a2, a3, a4)
contrazipLifting4 :: forall (f :: * -> *) (g :: * -> *) a1 a2 a3 a4.
Divisible f =>
(forall x. g x -> f x)
-> g a1 -> g a2 -> g a3 -> g a4 -> f (a1, a2, a3, a4)
contrazipLifting4 forall x. g x -> f x
fn g a1
a g a2
b g a3
c g a4
d = forall (f :: * -> *) a1 a2 a3 a4.
Divisible f =>
f a1 -> f a2 -> f a3 -> f a4 -> f (a1, a2, a3, a4)
contrazip4 (forall x. g x -> f x
fn g a1
a) (forall x. g x -> f x
fn g a2
b) (forall x. g x -> f x
fn g a3
c) (forall x. g x -> f x
fn g a4
d)

contrazipLifting5 :: (Divisible f) => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> f (a1, a2, a3, a4, a5)
contrazipLifting5 :: forall (f :: * -> *) (g :: * -> *) a1 a2 a3 a4 a5.
Divisible f =>
(forall x. g x -> f x)
-> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> f (a1, a2, a3, a4, a5)
contrazipLifting5 forall x. g x -> f x
fn g a1
a g a2
b g a3
c g a4
d g a5
e = forall (f :: * -> *) a1 a2 a3 a4 a5.
Divisible f =>
f a1 -> f a2 -> f a3 -> f a4 -> f a5 -> f (a1, a2, a3, a4, a5)
contrazip5 (forall x. g x -> f x
fn g a1
a) (forall x. g x -> f x
fn g a2
b) (forall x. g x -> f x
fn g a3
c) (forall x. g x -> f x
fn g a4
d) (forall x. g x -> f x
fn g a5
e)

contrazipLifting6 :: (Divisible f) => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> f (a1, a2, a3, a4, a5, a6)
contrazipLifting6 :: forall (f :: * -> *) (g :: * -> *) a1 a2 a3 a4 a5 a6.
Divisible f =>
(forall x. g x -> f x)
-> g a1
-> g a2
-> g a3
-> g a4
-> g a5
-> g a6
-> f (a1, a2, a3, a4, a5, a6)
contrazipLifting6 forall x. g x -> f x
fn g a1
a g a2
b g a3
c g a4
d g a5
e g a6
f = forall (f :: * -> *) a1 a2 a3 a4 a5 a6.
Divisible f =>
f a1
-> f a2
-> f a3
-> f a4
-> f a5
-> f a6
-> f (a1, a2, a3, a4, a5, a6)
contrazip6 (forall x. g x -> f x
fn g a1
a) (forall x. g x -> f x
fn g a2
b) (forall x. g x -> f x
fn g a3
c) (forall x. g x -> f x
fn g a4
d) (forall x. g x -> f x
fn g a5
e) (forall x. g x -> f x
fn g a6
f)

contrazipLifting7 :: (Divisible f) => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> f (a1, a2, a3, a4, a5, a6, a7)
contrazipLifting7 :: forall (f :: * -> *) (g :: * -> *) a1 a2 a3 a4 a5 a6 a7.
Divisible f =>
(forall x. g x -> f x)
-> g a1
-> g a2
-> g a3
-> g a4
-> g a5
-> g a6
-> g a7
-> f (a1, a2, a3, a4, a5, a6, a7)
contrazipLifting7 forall x. g x -> f x
fn g a1
a g a2
b g a3
c g a4
d g a5
e g a6
f g a7
g = forall (f :: * -> *) a1 a2 a3 a4 a5 a6 a7.
Divisible f =>
f a1
-> f a2
-> f a3
-> f a4
-> f a5
-> f a6
-> f a7
-> f (a1, a2, a3, a4, a5, a6, a7)
contrazip7 (forall x. g x -> f x
fn g a1
a) (forall x. g x -> f x
fn g a2
b) (forall x. g x -> f x
fn g a3
c) (forall x. g x -> f x
fn g a4
d) (forall x. g x -> f x
fn g a5
e) (forall x. g x -> f x
fn g a6
f) (forall x. g x -> f x
fn g a7
g)

contrazipLifting8 :: (Divisible f) => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> g a8 -> f (a1, a2, a3, a4, a5, a6, a7, a8)
contrazipLifting8 :: forall (f :: * -> *) (g :: * -> *) a1 a2 a3 a4 a5 a6 a7 a8.
Divisible f =>
(forall x. g x -> f x)
-> g a1
-> g a2
-> g a3
-> g a4
-> g a5
-> g a6
-> g a7
-> g a8
-> f (a1, a2, a3, a4, a5, a6, a7, a8)
contrazipLifting8 forall x. g x -> f x
fn g a1
a g a2
b g a3
c g a4
d g a5
e g a6
f g a7
g g a8
h = forall (f :: * -> *) a1 a2 a3 a4 a5 a6 a7 a8.
Divisible f =>
f a1
-> f a2
-> f a3
-> f a4
-> f a5
-> f a6
-> f a7
-> f a8
-> f (a1, a2, a3, a4, a5, a6, a7, a8)
contrazip8 (forall x. g x -> f x
fn g a1
a) (forall x. g x -> f x
fn g a2
b) (forall x. g x -> f x
fn g a3
c) (forall x. g x -> f x
fn g a4
d) (forall x. g x -> f x
fn g a5
e) (forall x. g x -> f x
fn g a6
f) (forall x. g x -> f x
fn g a7
g) (forall x. g x -> f x
fn g a8
h)

contrazipLifting9 :: (Divisible f) => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> g a8 -> g a9 -> f (a1, a2, a3, a4, a5, a6, a7, a8, a9)
contrazipLifting9 :: forall (f :: * -> *) (g :: * -> *) a1 a2 a3 a4 a5 a6 a7 a8 a9.
Divisible f =>
(forall x. g x -> f x)
-> g a1
-> g a2
-> g a3
-> g a4
-> g a5
-> g a6
-> g a7
-> g a8
-> g a9
-> f (a1, a2, a3, a4, a5, a6, a7, a8, a9)
contrazipLifting9 forall x. g x -> f x
fn g a1
a g a2
b g a3
c g a4
d g a5
e g a6
f g a7
g g a8
h g a9
i = forall (f :: * -> *) a1 a2 a3 a4 a5 a6 a7 a8 a9.
Divisible f =>
f a1
-> f a2
-> f a3
-> f a4
-> f a5
-> f a6
-> f a7
-> f a8
-> f a9
-> f (a1, a2, a3, a4, a5, a6, a7, a8, a9)
contrazip9 (forall x. g x -> f x
fn g a1
a) (forall x. g x -> f x
fn g a2
b) (forall x. g x -> f x
fn g a3
c) (forall x. g x -> f x
fn g a4
d) (forall x. g x -> f x
fn g a5
e) (forall x. g x -> f x
fn g a6
f) (forall x. g x -> f x
fn g a7
g) (forall x. g x -> f x
fn g a8
h) (forall x. g x -> f x
fn g a9
i)

contrazipLifting10 :: (Divisible f) => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> g a8 -> g a9 -> g a10 -> f (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
contrazipLifting10 :: forall (f :: * -> *) (g :: * -> *) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10.
Divisible f =>
(forall x. g x -> f x)
-> g a1
-> g a2
-> g a3
-> g a4
-> g a5
-> g a6
-> g a7
-> g a8
-> g a9
-> g a10
-> f (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
contrazipLifting10 forall x. g x -> f x
fn g a1
a g a2
b g a3
c g a4
d g a5
e g a6
f g a7
g g a8
h g a9
i g a10
j = forall (f :: * -> *) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10.
Divisible f =>
f a1
-> f a2
-> f a3
-> f a4
-> f a5
-> f a6
-> f a7
-> f a8
-> f a9
-> f a10
-> f (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
contrazip10 (forall x. g x -> f x
fn g a1
a) (forall x. g x -> f x
fn g a2
b) (forall x. g x -> f x
fn g a3
c) (forall x. g x -> f x
fn g a4
d) (forall x. g x -> f x
fn g a5
e) (forall x. g x -> f x
fn g a6
f) (forall x. g x -> f x
fn g a7
g) (forall x. g x -> f x
fn g a8
h) (forall x. g x -> f x
fn g a9
i) (forall x. g x -> f x
fn g a10
j)