I'm not sure how I feel about languages with auto currying. Upside: Partial application is easy. Downside: It's common to miss a parameter when refactoring, and errors can be unclear. Upside: You can be generic on functions: a -> b. Downside: An a -> b isn't very useful.