             }
         }
     }
-
-}
-
-
-
-
-public func curry<A, B, C, D, E, F, G, H, I, J, K, L>(f: (A, B, C, D, E, F, G, H, I, J, K) -> L) -> A -> B -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L {
-
-    return { (a: A) -> B -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L in
-        { (b: B) -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L in
-            { (c: C) -> D -> E -> F -> G -> H -> I -> J -> K -> L in
-                { (d: D) -> E -> F -> G -> H -> I -> J -> K -> L in
-                    { (e: E) -> F -> G -> H -> I -> J -> K -> L in
-                        { (ff: F) -> G -> H -> I -> J -> K -> L in
-                            { (g: G) -> H -> I -> J -> K -> L in
-                                { (h: H) -> I -> J -> K -> L in
-                                    { (i: I) -> J -> K -> L in
-                                        { (j: J) -> K -> L in
-                                            { (k: K) -> L in
-
+    
+}
+
+
+
+
+public func curry<A, B, C, D, E, F, G, H, I, J, K, L>(f : (A, B, C, D, E, F, G, H, I, J, K) -> L) -> A -> B -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L {
+    
+    return { (a : A) -> B -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L in
+        { (b : B) -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L in
+            { (c : C) -> D -> E -> F -> G -> H -> I -> J -> K -> L in
+                { (d : D) -> E -> F -> G -> H -> I -> J -> K -> L in
+                    { (e : E) -> F -> G -> H -> I -> J -> K -> L in
+                        { (ff : F) -> G -> H -> I -> J -> K -> L in
+                            { (g : G) -> H -> I -> J -> K -> L in
+                                { (h : H) -> I -> J -> K -> L in
+                                    { (i : I) -> J -> K -> L in
+                                        { (j : J) -> K -> L in
+                                            { (k : K) -> L in
+                                                
                                                 f(a, b, c, d, e, ff, g, h, i, j, k)
                                             }
                                         }

            }
        }
    }

}




public func curry<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>(f: (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O) -> P) -> A -> B -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L -> M -> N -> O -> P {

    return { (a: A) -> B -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L -> M -> N -> O -> P in
        { (b: B) -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L -> M -> N -> O -> P in
            { (c: C) -> D -> E -> F -> G -> H -> I -> J -> K -> L -> M -> N -> O -> P in
                { (d: D) -> E -> F -> G -> H -> I -> J -> K -> L -> M -> N -> O -> P in
                    { (e: E) -> F -> G -> H -> I -> J -> K -> L -> M -> N -> O -> P in
                        { (ff: F) -> G -> H -> I -> J -> K -> L -> M -> N -> O -> P in
                            { (g: G) -> H -> I -> J -> K -> L -> M -> N -> O -> P in
                                { (h: H) -> I -> J -> K -> L -> M -> N -> O -> P in
                                    { (i: I) -> J -> K -> L -> M -> N -> O -> P in
                                        { (j: J) -> K -> L -> M -> N -> O -> P in
                                            { (k: K) -> L -> M -> N -> O -> P in
                                                { (l: L) -> M -> N -> O -> P in
                                                    { (m: M) -> N -> O -> P in
                                                        { (n: N) -> O -> P in
                                                            { (o: O) -> P in

                                                                f(a, b, c, d, e, ff, g, h, i, j, k, l, m, n, o)
                                                            }
                                                        }

            }
        }
    }
    
}




public func curry<A, B, C, D, E, F, G, H, I, J, K, L, M>(f : (A, B, C, D, E, F, G, H, I, J, K, L) -> M) -> A -> B -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L -> M {
    
    return { (a : A) -> B -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L -> M in
        { (b : B) -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L -> M in
            { (c : C) -> D -> E -> F -> G -> H -> I -> J -> K -> L -> M in
                { (d : D) -> E -> F -> G -> H -> I -> J -> K -> L -> M in
                    { (e : E) -> F -> G -> H -> I -> J -> K -> L -> M in
                        { (ff : F) -> G -> H -> I -> J -> K -> L -> M in
                            { (g : G) -> H -> I -> J -> K -> L -> M in
                                { (h : H) -> I -> J -> K -> L -> M in
                                    { (i : I) -> J -> K -> L -> M in
                                        { (j : J) -> K -> L -> M in
                                            { (k : K) -> L -> M in
                                                { (l : L) -> M in
                                                    
                                                    f(a, b, c, d, e, ff, g, h, i, j, k, l)
                                                }
                                            }
