Jakob Brünker wrote a #Haskell GHC plugin to allow monadic values within expressions, if prefixed with a bang:
help :: Reader Contact String
help = do
pure $
"Call us at " <> (!ask).phone <> " or email " <> (!ask).email
Very exiting experiment!
https://hackage.haskell.org/package/monadic-bang-0.1.0.0
@nomeata Don't like how it makes `pure` a lie.
Would be nicer to readers if it would apply its magic only when wrapped in a something like `apply $ "call us at" <> (!ask)