fun f(f1: Function0<String> = local fun <anonymous>(): String {
  return f2.invoke()
}
, f2: Function0<String> = local fun <anonymous>(): String {
  return "FAIL"
}
): String {
  return f1.invoke()
}

fun box(): String {
  var result: String = "fail"
  try { // BLOCK
    f()
  }
  catch (e: Exception){ // BLOCK
    result = "OK"
  }
 /*~> Unit */
  return f(, f2 = local fun <anonymous>(): String {
    return "O"
  }
).plus(other = f(f1 = local fun <anonymous>(): String {
    return "K"
  }
))
}

