Haskell-like monadic do notation macro for Rust