// FIR_IDENTICAL // FILE: MyFuture.java public interface MyFuture { MyFuture addListener(MyListener> listener); } // FILE: MyListener.java public interface MyListener> { void operationComplete(F future) throws Exception; } // FILE: test.kt typealias Handler = (cause: Throwable?) -> Unit fun MyFuture.setup() { addListener(ListenerImpl>()) addListener { } } class ListenerImpl> : MyListener, Handler { override fun operationComplete(future: F) { } override fun invoke(cause: Throwable?) { } }