Why invoke() and not apply()

I believe you have already answered this question, but why is the method for "function-like" types is called invoke() instead of apply()? This seems like it has become an established naming convention, since not only Scala, but also Java 8 used it for Function<T,U> types.

Thanks!

Java's reflection calls such methods "invoke", and this is where we took it from. We may reconsider this decision later.

+1 for apply.