Thanks Tobias,

Without the associativity law, it would be very hard to determine the current state of the monad.
Since the compiler, on "desugaring" do-blocks, will insert brackets, there is no guarantee that the results are the same as for the brace-less and sugar-free version of the code.

Indeed this example helps me.
Regards,
Kashyap