ghc has the the MonadComprehension extension which does what you desire
https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/mona...