{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances #-}
module Data.Tuple.Curry where
import Data.Tuple.OneTuple

-- | Tuple curry/uncurry.
class Curry a b | a -> b where
    curryN   :: a -> b
    uncurryN :: b -> a

instance Curry (OneTuple a -> b) (a -> b) where
    curryN :: (OneTuple a -> b) -> a -> b
curryN OneTuple a -> b
f a
a = OneTuple a -> b
f (a -> OneTuple a
forall a. a -> Solo a
OneTuple a
a)
    uncurryN :: (a -> b) -> OneTuple a -> b
uncurryN a -> b
f ~(OneTuple a
a) = a -> b
f a
a

--snip-----------------

---- Machine generated code below, see Tools/MkTuple.hs

---- mkTuple curry 32

instance Curry ((a1,a2) -> r) (a1->a2 -> r) where
    curryN :: ((a1, a2) -> r) -> a1 -> a2 -> r
curryN (a1, a2) -> r
f a1
a1 a2
a2 = (a1, a2) -> r
f (a1
a1,a2
a2)
    uncurryN :: (a1 -> a2 -> r) -> (a1, a2) -> r
uncurryN a1 -> a2 -> r
f ~(a1
a1,a2
a2) = a1 -> a2 -> r
f a1
a1 a2
a2
instance Curry ((a1,a2,a3) -> r) (a1->a2->a3 -> r) where
    curryN :: ((a1, a2, a3) -> r) -> a1 -> a2 -> a3 -> r
curryN (a1, a2, a3) -> r
f a1
a1 a2
a2 a3
a3 = (a1, a2, a3) -> r
f (a1
a1,a2
a2,a3
a3)
    uncurryN :: (a1 -> a2 -> a3 -> r) -> (a1, a2, a3) -> r
uncurryN a1 -> a2 -> a3 -> r
f ~(a1
a1,a2
a2,a3
a3) = a1 -> a2 -> a3 -> r
f a1
a1 a2
a2 a3
a3
instance Curry ((a1,a2,a3,a4) -> r) (a1->a2->a3->a4 -> r) where
    curryN :: ((a1, a2, a3, a4) -> r) -> a1 -> a2 -> a3 -> a4 -> r
curryN (a1, a2, a3, a4) -> r
f a1
a1 a2
a2 a3
a3 a4
a4 = (a1, a2, a3, a4) -> r
f (a1
a1,a2
a2,a3
a3,a4
a4)
    uncurryN :: (a1 -> a2 -> a3 -> a4 -> r) -> (a1, a2, a3, a4) -> r
uncurryN a1 -> a2 -> a3 -> a4 -> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4) = a1 -> a2 -> a3 -> a4 -> r
f a1
a1 a2
a2 a3
a3 a4
a4
instance Curry ((a1,a2,a3,a4,a5) -> r) (a1->a2->a3->a4->a5 -> r) where
    curryN :: ((a1, a2, a3, a4, a5) -> r) -> a1 -> a2 -> a3 -> a4 -> a5 -> r
curryN (a1, a2, a3, a4, a5) -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 = (a1, a2, a3, a4, a5) -> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5)
    uncurryN :: (a1 -> a2 -> a3 -> a4 -> a5 -> r) -> (a1, a2, a3, a4, a5) -> r
uncurryN a1 -> a2 -> a3 -> a4 -> a5 -> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5) = a1 -> a2 -> a3 -> a4 -> a5 -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5
instance Curry ((a1,a2,a3,a4,a5,a6) -> r) (a1->a2->a3->a4->a5->a6 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6) -> r)
-> a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> r
curryN (a1, a2, a3, a4, a5, a6) -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 = (a1, a2, a3, a4, a5, a6) -> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6)
    uncurryN :: (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> r)
-> (a1, a2, a3, a4, a5, a6) -> r
uncurryN a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6) = a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6
instance Curry ((a1,a2,a3,a4,a5,a6,a7) -> r) (a1->a2->a3->a4->a5->a6->a7 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7) -> r)
-> a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> r
curryN (a1, a2, a3, a4, a5, a6, a7) -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 = (a1, a2, a3, a4, a5, a6, a7) -> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7)
    uncurryN :: (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> r)
-> (a1, a2, a3, a4, a5, a6, a7) -> r
uncurryN a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7) = a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8) -> r) (a1->a2->a3->a4->a5->a6->a7->a8 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8) -> r)
-> a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8) -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 = (a1, a2, a3, a4, a5, a6, a7, a8) -> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8)
    uncurryN :: (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8) -> r
uncurryN a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8) = a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9) -> r)
-> a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 = (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9)
    uncurryN :: (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> r
uncurryN a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9) = a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> r)
-> a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> a10 -> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10)
    uncurryN :: (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> a10 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -> r
uncurryN a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> a10 -> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10) = a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> a10 -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11)
    uncurryN :: (a1
 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> a10 -> a11 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> r
uncurryN a1
-> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> a10 -> a11 -> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11) = a1
-> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> a10 -> a11 -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18, a19)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> a19
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18, a19)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18, a19, a20)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> a19
 -> a20
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18, a19, a20)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20->a21 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18, a19, a20, a21)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> a19
 -> a20
 -> a21
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18, a19, a20, a21)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20->a21->a22 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18, a19, a20, a21, a22)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> a19
 -> a20
 -> a21
 -> a22
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18, a19, a20, a21, a22)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20->a21->a22->a23 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18, a19, a20, a21, a22, a23)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> a19
 -> a20
 -> a21
 -> a22
 -> a23
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18, a19, a20, a21, a22, a23)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20->a21->a22->a23->a24 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18, a19, a20, a21, a22, a23, a24)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> a19
 -> a20
 -> a21
 -> a22
 -> a23
 -> a24
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18, a19, a20, a21, a22, a23, a24)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20->a21->a22->a23->a24->a25 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18, a19, a20, a21, a22, a23, a24, a25)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> a19
 -> a20
 -> a21
 -> a22
 -> a23
 -> a24
 -> a25
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20->a21->a22->a23->a24->a25->a26 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 a26
a26 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25,a26
a26)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> a19
 -> a20
 -> a21
 -> a22
 -> a23
 -> a24
 -> a25
 -> a26
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25,a26
a26) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 a26
a26
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20->a21->a22->a23->a24->a25->a26->a27 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 a26
a26 a27
a27 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25,a26
a26,a27
a27)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> a19
 -> a20
 -> a21
 -> a22
 -> a23
 -> a24
 -> a25
 -> a26
 -> a27
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25,a26
a26,a27
a27) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 a26
a26 a27
a27
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20->a21->a22->a23->a24->a25->a26->a27->a28 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 a26
a26 a27
a27 a28
a28 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25,a26
a26,a27
a27,a28
a28)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> a19
 -> a20
 -> a21
 -> a22
 -> a23
 -> a24
 -> a25
 -> a26
 -> a27
 -> a28
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27,
    a28)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25,a26
a26,a27
a27,a28
a28) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 a26
a26 a27
a27 a28
a28
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20->a21->a22->a23->a24->a25->a26->a27->a28->a29 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28,
  a29)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> a29
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28,
 a29)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 a26
a26 a27
a27 a28
a28 a29
a29 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28,
 a29)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25,a26
a26,a27
a27,a28
a28,a29
a29)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> a19
 -> a20
 -> a21
 -> a22
 -> a23
 -> a24
 -> a25
 -> a26
 -> a27
 -> a28
 -> a29
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27,
    a28, a29)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> a29
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25,a26
a26,a27
a27,a28
a28,a29
a29) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> a29
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 a26
a26 a27
a27 a28
a28 a29
a29
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20->a21->a22->a23->a24->a25->a26->a27->a28->a29->a30 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28,
  a29, a30)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> a29
-> a30
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28,
 a29, a30)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 a26
a26 a27
a27 a28
a28 a29
a29 a30
a30 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28,
 a29, a30)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25,a26
a26,a27
a27,a28
a28,a29
a29,a30
a30)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> a19
 -> a20
 -> a21
 -> a22
 -> a23
 -> a24
 -> a25
 -> a26
 -> a27
 -> a28
 -> a29
 -> a30
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27,
    a28, a29, a30)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> a29
-> a30
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25,a26
a26,a27
a27,a28
a28,a29
a29,a30
a30) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> a29
-> a30
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 a26
a26 a27
a27 a28
a28 a29
a29 a30
a30
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20->a21->a22->a23->a24->a25->a26->a27->a28->a29->a30->a31 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28,
  a29, a30, a31)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> a29
-> a30
-> a31
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28,
 a29, a30, a31)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 a26
a26 a27
a27 a28
a28 a29
a29 a30
a30 a31
a31 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28,
 a29, a30, a31)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25,a26
a26,a27
a27,a28
a28,a29
a29,a30
a30,a31
a31)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> a19
 -> a20
 -> a21
 -> a22
 -> a23
 -> a24
 -> a25
 -> a26
 -> a27
 -> a28
 -> a29
 -> a30
 -> a31
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27,
    a28, a29, a30, a31)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> a29
-> a30
-> a31
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25,a26
a26,a27
a27,a28
a28,a29
a29,a30
a30,a31
a31) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> a29
-> a30
-> a31
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 a26
a26 a27
a27 a28
a28 a29
a29 a30
a30 a31
a31
instance Curry ((a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32) -> r) (a1->a2->a3->a4->a5->a6->a7->a8->a9->a10->a11->a12->a13->a14->a15->a16->a17->a18->a19->a20->a21->a22->a23->a24->a25->a26->a27->a28->a29->a30->a31->a32 -> r) where
    curryN :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
  a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28,
  a29, a30, a31, a32)
 -> r)
-> a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> a29
-> a30
-> a31
-> a32
-> r
curryN (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28,
 a29, a30, a31, a32)
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 a26
a26 a27
a27 a28
a28 a29
a29 a30
a30 a31
a31 a32
a32 = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15,
 a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28,
 a29, a30, a31, a32)
-> r
f (a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25,a26
a26,a27
a27,a28
a28,a29
a29,a30
a30,a31
a31,a32
a32)
    uncurryN :: (a1
 -> a2
 -> a3
 -> a4
 -> a5
 -> a6
 -> a7
 -> a8
 -> a9
 -> a10
 -> a11
 -> a12
 -> a13
 -> a14
 -> a15
 -> a16
 -> a17
 -> a18
 -> a19
 -> a20
 -> a21
 -> a22
 -> a23
 -> a24
 -> a25
 -> a26
 -> a27
 -> a28
 -> a29
 -> a30
 -> a31
 -> a32
 -> r)
-> (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,
    a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27,
    a28, a29, a30, a31, a32)
-> r
uncurryN a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> a29
-> a30
-> a31
-> a32
-> r
f ~(a1
a1,a2
a2,a3
a3,a4
a4,a5
a5,a6
a6,a7
a7,a8
a8,a9
a9,a10
a10,a11
a11,a12
a12,a13
a13,a14
a14,a15
a15,a16
a16,a17
a17,a18
a18,a19
a19,a20
a20,a21
a21,a22
a22,a23
a23,a24
a24,a25
a25,a26
a26,a27
a27,a28
a28,a29
a29,a30
a30,a31
a31,a32
a32) = a1
-> a2
-> a3
-> a4
-> a5
-> a6
-> a7
-> a8
-> a9
-> a10
-> a11
-> a12
-> a13
-> a14
-> a15
-> a16
-> a17
-> a18
-> a19
-> a20
-> a21
-> a22
-> a23
-> a24
-> a25
-> a26
-> a27
-> a28
-> a29
-> a30
-> a31
-> a32
-> r
f a1
a1 a2
a2 a3
a3 a4
a4 a5
a5 a6
a6 a7
a7 a8
a8 a9
a9 a10
a10 a11
a11 a12
a12 a13
a13 a14
a14 a15
a15 a16
a16 a17
a17 a18
a18 a19
a19 a20
a20 a21
a21 a22
a22 a23
a23 a24
a24 a25
a25 a26
a26 a27
a27 a28
a28 a29
a29 a30
a30 a31
a31 a32
a32