The familiar
curry :: ((a,b) -> c) -> a -> b -> c
curry = \f a b -> f (a,b)
function can be generalized to tuples of arbitrary arity, for example:
curry3 :: ((a, b, c) -> d) -> a -> b -> c -> d
curry4 :: ((a, b, c, d) -> e) -> a -> b -> c -> d ->...