> The thing is, none of those other examples cause indentation depth problems in other languages
They do, I've seen it happen before. Callback hell was a thing in JavaScript, before Promises happened (and later async/await). And if you've ever written in a functional programming style in a language that doesn't have a first class abstraction for monadic code, then you might have seen cascades of flatMap and map.
FWIW, do notation is not the only option, Scala has for comprehensions that accomplish the same goal.
They do, I've seen it happen before. Callback hell was a thing in JavaScript, before Promises happened (and later async/await). And if you've ever written in a functional programming style in a language that doesn't have a first class abstraction for monadic code, then you might have seen cascades of flatMap and map.
FWIW, do notation is not the only option, Scala has for comprehensions that accomplish the same goal.