     }
 }
 
-public func curry<First, Second, Third, Fourth,
-                  Fifth, Sixth, Seventh, Eighth,
-                  Ninth, Tenth, Eleventh, Twelfth, Result>(_ uncurried:
+/**
+ Create a curried version of the twelve parameter function given as the input parameter.
+ 
+ - parameter uncurried: A function with twelve parameters. The subject of the curry.
+ 
+ - returns: A curried version of the uncurried input function.
+ */
+public func curry<First, Second, Third, Fourth, Fifth, Sixth, Seventh,
+                  Eighth, Ninth, Tenth, Eleventh, Twelfth, Result>(_ uncurried:
 
     @escaping (First, Second, Third, Fourth,
                Fifth, Sixth, Seventh, Eighth,

    }
}

public func curry<First, Second, Third, Fourth,
                  Fifth, Sixth, Result>(_ uncurried:

    @escaping (First, Second, Third, Fourth,
               Fifth, Sixth) -> Result)
    -> (First) -> (Second) -> (Third) -> (Fourth)
    -> (Fifth) -> (Sixth) -> Result {

        return { first in { second in { third in { fourth
            in { fifth in { sixth in

                            return uncurried(first, second, third, fourth, fifth, sixth)
                        }

//  Copyright © 2017 Tigerpixel Ltd. All rights reserved.
//

/**
 Create a curried version of the two parameter function given as the input parameter.
 
 - parameter uncurried: A function with two parameters. The subject of the curry.
 
 - returns: A curried version of the uncurried input function.
 */
public func curry<First, Second, Result>(_ uncurried: // Declare generic names.

    @escaping (First, Second) -> Result) // Input signature.
    -> (First) -> (Second) -> Result { // Output signature.

    return { (first: First) -> (Second) -> Result in { (second: Second) -> Result in

            return uncurried(first, second)
        }
    }
}

/**
 Create a curried version of the three parameter function given as the input parameter.
 
 - parameter uncurried: A function with three parameters. The subject of the curry.
 
 - returns: A curried version of the uncurried input function.
 */
public func curry<First, Second, Third, Result>(_ uncurried:

    @escaping (First, Second, Third) -> Result)
