Rust's model of async-await is really interesting. They chose a suffix syntax (`foo.await` instead of `await foo`) because it composes better!
The evaluation model is also lazy: creating a future does nothing until it's awaited. https://blog.rust-lang.org/2019/11/07/Async-await-stable.html