module Data.Tuple.Gen(all2s, all3s, all4s, all5s, all6s, all7s, all8s, all9s, all10s,
all2sFrom, all3sFrom, all4sFrom, all5sFrom, all6sFrom, all7sFrom, all8sFrom, all9sFrom, all10sFrom)
where
all2s :: Integral a => [(a,a)]
all2s = all2sFrom (1,0)
all3s :: Integral a => [(a,a,a)]
all3s = all3sFrom (1,0,0)
all4s :: Integral a => [(a,a,a,a)]
all4s = all4sFrom (1,0,0,0)
all5s :: Integral a => [(a,a,a,a,a)]
all5s = all5sFrom (1,0,0,0,0)
all6s :: Integral a => [(a,a,a,a,a,a)]
all6s = all6sFrom (1,0,0,0,0,0)
all7s :: Integral a => [(a,a,a,a,a,a,a)]
all7s = all7sFrom (1,0,0,0,0,0,0)
all8s :: Integral a => [(a,a,a,a,a,a,a,a)]
all8s = all8sFrom (1,0,0,0,0,0,0,0)
all9s :: Integral a => [(a,a,a,a,a,a,a,a,a)]
all9s = all9sFrom (1,0,0,0,0,0,0,0,0)
all10s :: Integral a => [(a,a,a,a,a,a,a,a,a,a)]
all10s = all10sFrom (1,0,0,0,0,0,0,0,0,0)
all2sFrom :: Integral a => (a,a) -> [(a,a)]
all2sFrom start = s_A [start]
where
s_A ((a,b):is) = (a,b) : (s_B ((a1,b+1):is))
s_B ((0,b):is) = (0,b) : (s_A ((b+1, 0 ):is))
s_B ((a,b):is) = (a,b) : (s_B ((a1,b+1):is))
all3sFrom :: Integral a => (a,a,a) -> [(a,a,a)]
all3sFrom start = s_A [start]
where
s_A ((a,b,c):is) = (a,b,c) : (s_B ((a1,b+1,c):is))
s_B ((a,b,c):is) = (a,b,c) : (s_C ((a,b1,c+1):is))
s_C ((0,0,c):is) = (0,0,c) : (s_A ((c+1, 0 ,0):is))
s_C ((a,0,c):is) = (a,0,c) : (s_B ((a1,c+1,0):is))
s_C ((a,b,c):is) = (a,b,c) : (s_C ((a,b1,c+1):is))
all4sFrom :: Integral a => (a,a,a,a) -> [(a,a,a,a)]
all4sFrom start = s_A [start]
where
s_A ((a,b,c,d):is) = (a,b,c,d) : (s_B ((a1,b+1,c,d):is))
s_B ((a,b,c,d):is) = (a,b,c,d) : (s_C ((a,b1,c+1,d):is))
s_C ((a,b,c,d):is) = (a,b,c,d) : (s_D ((a,b,c1,d+1):is))
s_D ((0,0,0,d):is) = (0,0,0,d) : (s_A ((d+1, 0 ,0,0):is))
s_D ((a,0,0,d):is) = (a,0,0,d) : (s_B ((a1,d+1,0,0):is))
s_D ((a,b,0,d):is) = (a,b,0,d) : (s_C ((a,b1,d+1,0):is))
s_D ((a,b,c,d):is) = (a,b,c,d) : (s_D ((a,b,c1,d+1):is))
all5sFrom :: Integral a => (a,a,a,a,a) -> [(a,a,a,a,a)]
all5sFrom start = s_A [start]
where
s_A ((a,b,c,d,e):is) = (a,b,c,d,e) : (s_B ((a1,b+1,c,d,e):is))
s_B ((a,b,c,d,e):is) = (a,b,c,d,e) : (s_C ((a,b1,c+1,d,e):is))
s_C ((a,b,c,d,e):is) = (a,b,c,d,e) : (s_D ((a,b,c1,d+1,e):is))
s_D ((a,b,c,d,e):is) = (a,b,c,d,e) : (s_E ((a,b,c,d1,e+1):is))
s_E ((0,0,0,0,e):is) = (0,0,0,0,e) : (s_A ((e+1, 0 ,0,0,0):is))
s_E ((a,0,0,0,e):is) = (a,0,0,0,e) : (s_B ((a1,e+1,0,0,0):is))
s_E ((a,b,0,0,e):is) = (a,b,0,0,e) : (s_C ((a,b1,e+1,0,0):is))
s_E ((a,b,c,0,e):is) = (a,b,c,0,e) : (s_D ((a,b,c1,e+1,0):is))
s_E ((a,b,c,d,e):is) = (a,b,c,d,e) : (s_E ((a,b,c,d1,e+1):is))
all6sFrom :: Integral a => (a,a,a,a,a,a) -> [(a,a,a,a,a,a)]
all6sFrom start = s_A [start]
where
s_A ((a,b,c,d,e,f):is) = (a,b,c,d,e,f) : (s_B ((a1,b+1,c,d,e,f):is))
s_B ((a,b,c,d,e,f):is) = (a,b,c,d,e,f) : (s_C ((a,b1,c+1,d,e,f):is))
s_C ((a,b,c,d,e,f):is) = (a,b,c,d,e,f) : (s_D ((a,b,c1,d+1,e,f):is))
s_D ((a,b,c,d,e,f):is) = (a,b,c,d,e,f) : (s_E ((a,b,c,d1,e+1,f):is))
s_E ((a,b,c,d,e,f):is) = (a,b,c,d,e,f) : (s_F ((a,b,c,d,e1,f+1):is))
s_F ((0,0,0,0,0,f):is) = (0,0,0,0,0,f) : (s_A ((f+1, 0 ,0,0,0,0):is))
s_F ((a,0,0,0,0,f):is) = (a,0,0,0,0,f) : (s_B ((a1,f+1,0,0,0,0):is))
s_F ((a,b,0,0,0,f):is) = (a,b,0,0,0,f) : (s_C ((a,b1,f+1,0,0,0):is))
s_F ((a,b,c,0,0,f):is) = (a,b,c,0,0,f) : (s_D ((a,b,c1,f+1,0,0):is))
s_F ((a,b,c,d,0,f):is) = (a,b,c,d,0,f) : (s_E ((a,b,c,d1,f+1,0):is))
s_F ((a,b,c,d,e,f):is) = (a,b,c,d,e,f) : (s_F ((a,b,c,d,e1,f+1):is))
all7sFrom :: Integral a => (a,a,a,a,a,a,a) -> [(a,a,a,a,a,a,a)]
all7sFrom start = s_A [start]
where
s_A ((a,b,c,d,e,f,g):is) = (a,b,c,d,e,f,g) : (s_B ((a1,b+1,c,d,e,f,g):is))
s_B ((a,b,c,d,e,f,g):is) = (a,b,c,d,e,f,g) : (s_C ((a,b1,c+1,d,e,f,g):is))
s_C ((a,b,c,d,e,f,g):is) = (a,b,c,d,e,f,g) : (s_D ((a,b,c1,d+1,e,f,g):is))
s_D ((a,b,c,d,e,f,g):is) = (a,b,c,d,e,f,g) : (s_E ((a,b,c,d1,e+1,f,g):is))
s_E ((a,b,c,d,e,f,g):is) = (a,b,c,d,e,f,g) : (s_F ((a,b,c,d,e1,f+1,g):is))
s_F ((a,b,c,d,e,f,g):is) = (a,b,c,d,e,f,g) : (s_G ((a,b,c,d,e,f1,g+1):is))
s_G ((0,0,0,0,0,0,g):is) = (0,0,0,0,0,0,g) : (s_A ((g+1, 0 ,0,0,0,0,0):is))
s_G ((a,0,0,0,0,0,g):is) = (a,0,0,0,0,0,g) : (s_B ((a1,g+1,0,0,0,0,0):is))
s_G ((a,b,0,0,0,0,g):is) = (a,b,0,0,0,0,g) : (s_C ((a,b1,g+1,0,0,0,0):is))
s_G ((a,b,c,0,0,0,g):is) = (a,b,c,0,0,0,g) : (s_D ((a,b,c1,g+1,0,0,0):is))
s_G ((a,b,c,d,0,0,g):is) = (a,b,c,d,0,0,g) : (s_E ((a,b,c,d1,g+1,0,0):is))
s_G ((a,b,c,d,e,0,g):is) = (a,b,c,d,e,0,g) : (s_F ((a,b,c,d,e1,g+1,0):is))
s_G ((a,b,c,d,e,f,g):is) = (a,b,c,d,e,f,g) : (s_G ((a,b,c,d,e,f1,g+1):is))
all8sFrom :: Integral a => (a,a,a,a,a,a,a,a) -> [(a,a,a,a,a,a,a,a)]
all8sFrom start = s_A [start]
where
s_A ((a,b,c,d,e,f,g,h):is) = (a,b,c,d,e,f,g,h) : (s_B ((a1,b+1,c,d,e,f,g,h):is))
s_B ((a,b,c,d,e,f,g,h):is) = (a,b,c,d,e,f,g,h) : (s_C ((a,b1,c+1,d,e,f,g,h):is))
s_C ((a,b,c,d,e,f,g,h):is) = (a,b,c,d,e,f,g,h) : (s_D ((a,b,c1,d+1,e,f,g,h):is))
s_D ((a,b,c,d,e,f,g,h):is) = (a,b,c,d,e,f,g,h) : (s_E ((a,b,c,d1,e+1,f,g,h):is))
s_E ((a,b,c,d,e,f,g,h):is) = (a,b,c,d,e,f,g,h) : (s_F ((a,b,c,d,e1,f+1,g,h):is))
s_F ((a,b,c,d,e,f,g,h):is) = (a,b,c,d,e,f,g,h) : (s_G ((a,b,c,d,e,f1,g+1,h):is))
s_G ((a,b,c,d,e,f,g,h):is) = (a,b,c,d,e,f,g,h) : (s_H ((a,b,c,d,e,f,g1,h+1):is))
s_H ((0,0,0,0,0,0,0,h):is) = (0,0,0,0,0,0,0,h) : (s_A ((h+1, 0 ,0,0,0,0,0,0):is))
s_H ((a,0,0,0,0,0,0,h):is) = (a,0,0,0,0,0,0,h) : (s_B ((a1,h+1,0,0,0,0,0,0):is))
s_H ((a,b,0,0,0,0,0,h):is) = (a,b,0,0,0,0,0,h) : (s_C ((a,b1,h+1,0,0,0,0,0):is))
s_H ((a,b,c,0,0,0,0,h):is) = (a,b,c,0,0,0,0,h) : (s_D ((a,b,c1,h+1,0,0,0,0):is))
s_H ((a,b,c,d,0,0,0,h):is) = (a,b,c,d,0,0,0,h) : (s_E ((a,b,c,d1,h+1,0,0,0):is))
s_H ((a,b,c,d,e,0,0,h):is) = (a,b,c,d,e,0,0,h) : (s_F ((a,b,c,d,e1,h+1,0,0):is))
s_H ((a,b,c,d,e,f,0,h):is) = (a,b,c,d,e,f,0,h) : (s_G ((a,b,c,d,e,f1,h+1,0):is))
s_H ((a,b,c,d,e,f,g,h):is) = (a,b,c,d,e,f,g,h) : (s_H ((a,b,c,d,e,f,g1,h+1):is))
all9sFrom :: Integral a => (a,a,a,a,a,a,a,a,a) -> [(a,a,a,a,a,a,a,a,a)]
all9sFrom start = s_A [start]
where
s_A ((a,b,c,d,e,f,g,h,i):is) = (a,b,c,d,e,f,g,h,i) : (s_B ((a1,b+1,c,d,e,f,g,h,i):is))
s_B ((a,b,c,d,e,f,g,h,i):is) = (a,b,c,d,e,f,g,h,i) : (s_C ((a,b1,c+1,d,e,f,g,h,i):is))
s_C ((a,b,c,d,e,f,g,h,i):is) = (a,b,c,d,e,f,g,h,i) : (s_D ((a,b,c1,d+1,e,f,g,h,i):is))
s_D ((a,b,c,d,e,f,g,h,i):is) = (a,b,c,d,e,f,g,h,i) : (s_E ((a,b,c,d1,e+1,f,g,h,i):is))
s_E ((a,b,c,d,e,f,g,h,i):is) = (a,b,c,d,e,f,g,h,i) : (s_F ((a,b,c,d,e1,f+1,g,h,i):is))
s_F ((a,b,c,d,e,f,g,h,i):is) = (a,b,c,d,e,f,g,h,i) : (s_G ((a,b,c,d,e,f1,g+1,h,i):is))
s_G ((a,b,c,d,e,f,g,h,i):is) = (a,b,c,d,e,f,g,h,i) : (s_H ((a,b,c,d,e,f,g1,h+1,i):is))
s_H ((a,b,c,d,e,f,g,h,i):is) = (a,b,c,d,e,f,g,h,i) : (s_I ((a,b,c,d,e,f,g,h1,i+1):is))
s_I ((0,0,0,0,0,0,0,0,i):is) = (0,0,0,0,0,0,0,0,i) : (s_A ((i+1, 0 ,0,0,0,0,0,0,0):is))
s_I ((a,0,0,0,0,0,0,0,i):is) = (a,0,0,0,0,0,0,0,i) : (s_B ((a1,i+1,0,0,0,0,0,0,0):is))
s_I ((a,b,0,0,0,0,0,0,i):is) = (a,b,0,0,0,0,0,0,i) : (s_C ((a,b1,i+1,0,0,0,0,0,0):is))
s_I ((a,b,c,0,0,0,0,0,i):is) = (a,b,c,0,0,0,0,0,i) : (s_D ((a,b,c1,i+1,0,0,0,0,0):is))
s_I ((a,b,c,d,0,0,0,0,i):is) = (a,b,c,d,0,0,0,0,i) : (s_E ((a,b,c,d1,i+1,0,0,0,0):is))
s_I ((a,b,c,d,e,0,0,0,i):is) = (a,b,c,d,e,0,0,0,i) : (s_F ((a,b,c,d,e1,i+1,0,0,0):is))
s_I ((a,b,c,d,e,f,0,0,i):is) = (a,b,c,d,e,f,0,0,i) : (s_G ((a,b,c,d,e,f1,i+1,0,0):is))
s_I ((a,b,c,d,e,f,g,0,i):is) = (a,b,c,d,e,f,g,0,i) : (s_H ((a,b,c,d,e,f,g1,i+1,0):is))
s_I ((a,b,c,d,e,f,g,h,i):is) = (a,b,c,d,e,f,g,h,i) : (s_I ((a,b,c,d,e,f,g,h1,i+1):is))
all10sFrom :: Integral a => (a,a,a,a,a,a,a,a,a,a) -> [(a,a,a,a,a,a,a,a,a,a)]
all10sFrom start = s_A [start]
where
s_A ((a,b,c,d,e,f,g,h,i,j):is) = (a,b,c,d,e,f,g,h,i,j) : (s_B ((a1,b+1,c,d,e,f,g,h,i,j):is))
s_B ((a,b,c,d,e,f,g,h,i,j):is) = (a,b,c,d,e,f,g,h,i,j) : (s_C ((a,b1,c+1,d,e,f,g,h,i,j):is))
s_C ((a,b,c,d,e,f,g,h,i,j):is) = (a,b,c,d,e,f,g,h,i,j) : (s_D ((a,b,c1,d+1,e,f,g,h,i,j):is))
s_D ((a,b,c,d,e,f,g,h,i,j):is) = (a,b,c,d,e,f,g,h,i,j) : (s_E ((a,b,c,d1,e+1,f,g,h,i,j):is))
s_E ((a,b,c,d,e,f,g,h,i,j):is) = (a,b,c,d,e,f,g,h,i,j) : (s_F ((a,b,c,d,e1,f+1,g,h,i,j):is))
s_F ((a,b,c,d,e,f,g,h,i,j):is) = (a,b,c,d,e,f,g,h,i,j) : (s_G ((a,b,c,d,e,f1,g+1,h,i,j):is))
s_G ((a,b,c,d,e,f,g,h,i,j):is) = (a,b,c,d,e,f,g,h,i,j) : (s_H ((a,b,c,d,e,f,g1,h+1,i,j):is))
s_H ((a,b,c,d,e,f,g,h,i,j):is) = (a,b,c,d,e,f,g,h,i,j) : (s_I ((a,b,c,d,e,f,g,h1,i+1,j):is))
s_I ((a,b,c,d,e,f,g,h,i,j):is) = (a,b,c,d,e,f,g,h,i,j) : (s_J ((a,b,c,d,e,f,g,h,i1,j+1):is))
s_J ((0,0,0,0,0,0,0,0,0,j):is) = (0,0,0,0,0,0,0,0,0,j) : (s_A ((j+1, 0 ,0,0,0,0,0,0,0,0):is))
s_J ((a,0,0,0,0,0,0,0,0,j):is) = (a,0,0,0,0,0,0,0,0,j) : (s_B ((a1,j+1,0,0,0,0,0,0,0,0):is))
s_J ((a,b,0,0,0,0,0,0,0,j):is) = (a,b,0,0,0,0,0,0,0,j) : (s_C ((a,b1,j+1,0,0,0,0,0,0,0):is))
s_J ((a,b,c,0,0,0,0,0,0,j):is) = (a,b,c,0,0,0,0,0,0,j) : (s_D ((a,b,c1,j+1,0,0,0,0,0,0):is))
s_J ((a,b,c,d,0,0,0,0,0,j):is) = (a,b,c,d,0,0,0,0,0,j) : (s_E ((a,b,c,d1,j+1,0,0,0,0,0):is))
s_J ((a,b,c,d,e,0,0,0,0,j):is) = (a,b,c,d,e,0,0,0,0,j) : (s_F ((a,b,c,d,e1,j+1,0,0,0,0):is))
s_J ((a,b,c,d,e,f,0,0,0,j):is) = (a,b,c,d,e,f,0,0,0,j) : (s_G ((a,b,c,d,e,f1,j+1,0,0,0):is))
s_J ((a,b,c,d,e,f,g,0,0,j):is) = (a,b,c,d,e,f,g,0,0,j) : (s_H ((a,b,c,d,e,f,g1,j+1,0,0):is))
s_J ((a,b,c,d,e,f,g,h,0,j):is) = (a,b,c,d,e,f,g,h,0,j) : (s_I ((a,b,c,d,e,f,g,h1,j+1,0):is))
s_J ((a,b,c,d,e,f,g,h,i,j):is) = (a,b,c,d,e,f,g,h,i,j) : (s_J ((a,b,c,d,e,f,g,h,i1,j+1):is))