Earlier quoted context omitted.
What's effortless is putting begin and end of blocks symbols only where they matter. Haskell is particularly guilty of creating several different indenting possibilities, and does require constant intervention. Python is less bad, but still requires more effort than C for example.
Er… you know Haskell's syntax is defined as braces-and-semicolons right? And the braceless-and-semicolons-free syntax is the addition of a few layout rules[0] for human convenience. [0] https://www.haskell.org/onlinereport/syntax-iso.html#sect9.3
Anyway, Haskell is a very instructive example about how semantic indentation creates problems.