fun test1(): Runnable {
  return local fun <anonymous>() {
    return Unit
  }
 /*-> Runnable */
}

fun test2(a: Function0<Unit>): Runnable {
  return a /*-> Runnable */
}

fun foo() {
}

fun test3(): Runnable {
  return ::foo /*-> Runnable */
}

fun test4(): Comparator<Int?> {
  return local fun <anonymous>(a: Int?, b: Int?): Int {
    return a.minus(other = b /*!! Int */)
  }
 /*-> Comparator<Int?> */
}
