auto result = co_await expression; // | | // | | // \ / // \ / // \/ auto&& __a = expression; if (!__a.await_ready()) { __a.await_suspend(coroutine-handle) // ...suspend/resume point... } auto result = __a.await_resume(); //================================================== co_yield i; // | | // | | // \ / // \ / // \/ co_await __promise.yield_value(i);