Monads only need a lengthy explanation if you don't understand that they are a
typeclass in Haskell. The monad laws you can take to be principles on which to correctly implement them, but they aren't necessary for their use.
Besides, that whole post just gave me the impression that you haven't done the minimum necessary to understand Haskell programs. You claim that there is no immediate visual grouping of the expressions, yet you seem to gloss over all the pattern-based definitions of functions.
Now, if you find using such lengthy sequences of patterns to define your functions unsavory, you can use case expressions, which... require indentation for their cases.
On most respects, it just comes down to the fact that Haskell is different, and it takes a bit of reading to accustom oneself to it.
edit: It was a tad too defensive before. Sorry 'bout that.