fun foo() { bar { } } fun bar(a: Any) = a fun bar(f: () -> T): T = f() Resolved call: Candidate descriptor: fun bar(f: () -> T): T defined in root package Resulting descriptor: fun bar(f: () -> Unit): Unit defined in root package Explicit receiver kind = NO_EXPLICIT_RECEIVER Dispatch receiver = NO_RECEIVER Extension receiver = NO_RECEIVER Value arguments mapping: SUCCESS f : () -> Unit = { }