a+b+c = (a+b)+c = a+(b+c) // Good!
f a b = (f a) b != f (a b) // WTF?
BTW, that's also a good rule of thumb for defining new operators. If your new op ~-^-~ is not associative, don't make it an op!! And even if it is, consider that users won't magically know the relative precedence of your op versus someone else's =^%^=. Looking at you, Haskell.