fun interface KRunnable {
  abstract fun invoke()

}

fun test(a: Any?) {
  a as Function0<Unit> /*~> Unit */
  a /*as Function0<Unit> */ /*-> KRunnable */.invoke()
}
