Came here to say that. I think do notation (and applicative idioms) are easily one of the most-underappreciated features outside the Haskell community.
Want prefix await? Go for it!
res <- await $ foo bar
Want postfix? You can have that too! res <- foo bar & await
Being “just a function” means it composes with everything else in the language, something the Rust languages designers have held in high regard when designing this.(But I also fully appreciate the design constraints that prevent Rust from using “just a method” or ”just a macro”)