Personally, what's often made me give up a partial application approach (in languages that support it) is that it's less flexible than default parameters because it requires partial application to apply strictly in the order that the parameters are defined. Once the author of the function has decided the function takes
(a: A, b: B, c: C)
, that's it, you can only partially apply it in one way and no other. Named and default parameters are a much more flexible approach overall.