module Csound.Typed.Types.TupleHelpers where

cons3 :: (a, (b, c)) -> (a, b, c)
cons4 :: (a, (b, c, d)) -> (a, b, c, d)
cons5 :: (a, (b, c, d, e)) -> (a, b, c, d, e)
cons6 :: (a, (b, c, d, e, f)) -> (a, b, c, d, e, f)
cons7 :: (a, (b, c, d, e, f, g)) -> (a, b, c, d, e, f, g)
cons8 :: (a, (b, c, d, e, f, g, h)) -> (a, b, c, d, e, f, g, h)

cons3 :: forall a b c. (a, (b, c)) -> (a, b, c)
cons3 (a
a, (b
b, c
c)) = (a
a, b
b, c
c)
cons4 :: forall a b c d. (a, (b, c, d)) -> (a, b, c, d)
cons4 (a
a, (b
b, c
c, d
d)) = (a
a, b
b, c
c, d
d)
cons5 :: forall a b c d e. (a, (b, c, d, e)) -> (a, b, c, d, e)
cons5 (a
a, (b
b, c
c, d
d, e
e)) = (a
a, b
b, c
c, d
d, e
e)
cons6 :: forall a b c d e f. (a, (b, c, d, e, f)) -> (a, b, c, d, e, f)
cons6 (a
a, (b
b, c
c, d
d, e
e, f
f)) = (a
a, b
b, c
c, d
d, e
e, f
f)
cons7 :: forall a b c d e f g.
(a, (b, c, d, e, f, g)) -> (a, b, c, d, e, f, g)
cons7 (a
a, (b
b, c
c, d
d, e
e, f
f, g
g)) = (a
a, b
b, c
c, d
d, e
e, f
f, g
g)
cons8 :: forall a b c d e f g h.
(a, (b, c, d, e, f, g, h)) -> (a, b, c, d, e, f, g, h)
cons8 (a
a, (b
b, c
c, d
d, e
e, f
f, g
g, h
h)) = (a
a, b
b, c
c, d
d, e
e, f
f, g
g, h
h)

split3 :: (a, b, c) -> (a, (b, c))  
split4 :: (a, b, c, d) -> (a, (b, c, d))  
split5 :: (a, b, c, d, e) -> (a, (b, c, d, e))  
split6 :: (a, b, c, d, e, f) -> (a, (b, c, d, e, f))  
split7 :: (a, b, c, d, e, f, g) -> (a, (b, c, d, e, f, g))  
split8 :: (a, b, c, d, e, f, g, h) -> (a, (b, c, d, e, f, g, h))  

split3 :: forall a b c. (a, b, c) -> (a, (b, c))
split3 (a
a, b
b, c
c) = (a
a, (b
b, c
c))  
split4 :: forall a b c d. (a, b, c, d) -> (a, (b, c, d))
split4 (a
a, b
b, c
c, d
d) = (a
a, (b
b, c
c, d
d))  
split5 :: forall a b c d e. (a, b, c, d, e) -> (a, (b, c, d, e))
split5 (a
a, b
b, c
c, d
d, e
e) = (a
a, (b
b, c
c, d
d, e
e))  
split6 :: forall a b c d e f. (a, b, c, d, e, f) -> (a, (b, c, d, e, f))
split6 (a
a, b
b, c
c, d
d, e
e, f
f) = (a
a, (b
b, c
c, d
d, e
e, f
f))  
split7 :: forall a b c d e f g.
(a, b, c, d, e, f, g) -> (a, (b, c, d, e, f, g))
split7 (a
a, b
b, c
c, d
d, e
e, f
f, g
g) = (a
a, (b
b, c
c, d
d, e
e, f
f, g
g))  
split8 :: forall a b c d e f g h.
(a, b, c, d, e, f, g, h) -> (a, (b, c, d, e, f, g, h))
split8 (a
a, b
b, c
c, d
d, e
e, f
f, g
g, h
h) = (a
a, (b
b, c
c, d
d, e
e, f
f, g
g, h
h))