val (@[a] T.(A) -> Unit).foo: P val (@[a] T.(A) -> C).foo: P val @[a] (@[a] T.(A) -> R).foo: P val @[a] (() -> Unit).foo: P @[a] val @[a] ((A, B) -> Unit).foo: P