fun ((T) -> G).foo

{ } fun ((T) -> G).foo { } fun ((T) -> G).foo

fun ((T) -> G).foo = 0 fun ((T) -> G)?.foo { } fun ((T) -> G)??.foo { } fun (@[a] T.(A, C) -> ).foo() {} fun fun @[a] T.(A).foo() fun @[a] (T.(A)).foo() fun @[a] ((A)-).foo() fun ((T)->G).foo class C. fun foo {} c. //----------- class A { fun foo() { } } fun bar(a: A) { a.foo() }