I'm pretty sure you can't ignore language semantics here.
> You can certainly reimplement it on most functional languages with a syntax that is only a bit more verbose and error prone. That's not a win.
Note that I was giving examples from imperative languages; Haskell has the additional problem that it has to transform the do notation into what's essentially function composition; but function composition is already the natural denotational semantics of imperative code [1].
[1] https://en.wikipedia.org/wiki/Denotational_semantics#Denotat...