1 min readApr 13, 2017
You can change function’s name for JVM, leaving its Kotlin name unchanged:
@JvmName("applyFunction")
fun <A, B> Option<A>.apply(o: Option<(A) -> B>) { ... }
@JvmName("applyToFunction")
fun <A, B> Option<(A) -> B>.apply(o: Option<A>) { ... }