It's fine to take inspiration from other runtimes, but you have to take into account the complete concurrency story of Swift here. I.e. things which other "just async await / coroutines" do not offer: actors.
You propose:
Which is not something that we'd want to do.
Rather, the same is expressed by an actor
being on a specific executor:
actor Someone {
let serialExecutor = ... // some specific queue or executor here
func doFirstThing() throws -> String { ... } // will execute on the actor's executor.
}
Hope this helps answer that side of the question.
To learn more about those, please refer to:
- Actors proposal: [Pitch #4] Actors
- Custom executors proposal: Support custom executors in Swift concurrency