Question: Very confused about logical operator precedence

Augh, this is hurting my brain.  This homework assignment (still the same one as before) is my first experience with Maple.  I'm trying to learn the semantics of the language as I go, and that's been going well for the most part, but there's this one thing that has been bugging me to absolutely NO END:  Logical operators.

Here's what I understand after a lot of internet searching and Help browsing:
-There's two sets of very similar operators.  There's the ones I'm supposed to be using, which have ampersands (&and, &or, &implies), and there's another set without ampersands (and, or, implies).
-The regular ones (and, or, etc.) are "Boolean operators". The ampersand ones are "Logic operators".
-The reason why the Logic package has its own set of operators is because the Boolean ones work with three values: true, false, and FAIL.  Logic does not use FAIL.
-The reason why Logical operators have an & in their name is to keep them from overwriting the Boolean operators.
-Boolean operators have an order of precedence matching the math operations they represent.  For instance, and preceeds or.
-The Logic operators have a different order of precedence.  This is because of the ampersand.  & operators are called "neutral operators", and they are all of equal precedence.

So boolean operators have normal order, and Logic (&) operators strictly run left-to-right, right?

Then somebody please explain what's going on here, because it's hurting my head:

restart : with(Logic) :
a &or (b &and c);
[returns:  a &or b &and c]
a &or b &and c;
[returns:  (a &or b) &and c]

Please Wait...