Допустим, у вас есть следующее:
foo(x: String)(y: Int): Int
foo(x: String)(y: Double): Int
Scala не допускает такого выражения. Насколько я понимаю, причина этого в том, что foo ("asdf") не имеет четко определенного типа (это либо Int => Int, либо Double => Int).
Есть ли причина, по которой такое " "политипизированные" функции не должны быть разрешены?