In the `?` operator inside an `async fn`, the early-return path interacts with the state machine. For `let x = io().await?;`, what does the lowering produce with respect to suspend states?
async fn run() -> Result<u32, E> {
let x = io().await?; // io(): impl Future<Output = Result<u32, E>>
Ok(x + 1)
}