val a = fun ) val a = fun foo) val a = fun @[a] T.foo(a : ) : bar val a = fun @[a()] T.foo<>(a : foo) : bar val a = fun @[a()] T.<>(a : foo) : bar val a = fun T.foo(a : foo) : bar val a = fun T.foo<, T, , T>(a : foo) : bar val a = fun T.foo(, a : foo, , a: b) : bar val a = fun foo() : = a; val public_fun = public fun () val open_fun = open fun () val final_fun = final fun () val where_fun = fun () where T: V fun where_fun() = fun () where T: V fun outer() { bar(fun ) bar(fun T) bar(fun T.) bar(fun @[a]) bar(public fun ()) bar(open fun ()) bar(final fun ()) bar(fun () where T: V) }