val ((T) -> G).foo

{ } val ((T) -> G).foo get{ } val ((T) -> G).foo

val ((T) -> G).foo: = 0 val ((T) -> G)?.foo val ((T) -> G)??.foo val (T.(A, C) -> ).foo {} val val [a] T.(A).foo() val [a] (T.(A)).foo() val [a] ((A)-).foo() val c by A.B