Typed throw functions

How about a possibility of constraining what execution context (e.g. a dispatch queue, an operation queue, or a thread) this function is designed to be executed on? This feature has been discussed in the forums and the go-to syntax was chosen to be:

on(.main) func doUIStuff() { /* ... */ }

If this syntax was replaced by a parametrized async it would make sense in terms of the effect of this constraint and also would enable the async Never case:

func doUIStuff() async(.main) { /* ... */ }
2 Likes