On Sun, Oct 2, 2011 at 9:00 AM, Felipe Almeida Lessa <felipe.lessa@gmail.com> wrote:
On Sun, Oct 2, 2011 at 12:04 AM, Rustom Mody <rustompmody@gmail.com> wrote:
> How would you classify a function of type (Int, Int) -> Int -> Int ?

It's curried.  Uncurried would be:

 ((Int, Int), Int) -> Int
 
Yes, if you mean that uncurrying it gives the type ((Int, Int), Int) -> Int
But it can also be curried to get the type Int -> Int -> Int -> Int
Does that not make it uncurried as well?


> Likewise if we have a polymorphic foo: Int -> a and we instantiate a to Int
> -> Int  does foo suddenly get curried?

Int -> a is both curried and uncurried.  Int -> Int -> Int is just curried.

--
Felipe.