The problems are indeed similar, but using the same syntax and obscuring what monad is being used is itself a worse programming language hell than the original bad examples.
Why is recognizing the fundamental sameness of the problems, and solving them once, a "worse programming language hell"?
Because that sameness is irrelevant, and building something on it decreases clarity. Just because you can show something in mathematical terms doesn't make it useful.