It saddens me that modern languages have basically implemented their own "monadic" syntax for specific cases without implementing something more generic. Rust, Kotlin, and Swift have `?` for the Option/Error monad, Javascript, C#, Python, and Rust all have `await` for the Promise monad. Both of these things and way more are possible with `<-` in Haskell, and while `do` notation isn't perfect, I'd really like another language that tried to build on that instead of doing ad-hoc syntax for the common cases.

with generators its easy to create your own `do` like function

.. first from google search https://github.com/pelotom/burrido

I haven't actually seen anyone use this in practice though.