Coroutines and “yield” expressions: foundation for async/await in Swift | Hacker News Reader