No. In your case it is not needed, because JVM runtime can perfectly distinguish between one
foo
and another.
In my example, while Kotlin can resolve generic and non-generic version without any problem, JVM function signature would be exactly the same, hence you have to give compiler a hint about how to name the other one.