# Uncurrying and Polymorphism

How do we uncurry functions when they are polymorphic? For example, is it possible to uncurry the following types? If so what is the uncurried type?

1. $$\forall X. X \rightarrow int \rightarrow X$$ ?
2. $$int \rightarrow \forall X. X \rightarrow X$$ ?
3. $$int \rightarrow \forall X. X \rightarrow int \rightarrow X$$ ?