// !LANGUAGE: +KotlinFunInterfaceConstructorReference // WITH_REFLECT import kotlin.reflect.* fun interface KRunnable { fun run() } typealias KR = KRunnable fun interface KSupplier { fun get(): T } typealias KSS = KSupplier fun interface KConsumer { fun accept(x: T) } typealias KCS = KConsumer fun test1() = ::KRunnable fun test1a() = ::KR fun test1b(): KFunction = ::KRunnable fun test2(): (() -> String) -> KSupplier = ::KSupplier fun test2a(): (() -> String) -> KSupplier = ::KSS fun test3(): ((String) -> Unit) -> KConsumer = ::KConsumer fun test3a(): ((String) -> Unit) -> KConsumer = ::KCS fun test3b(): KFunction> = ::KConsumer