Parentheses in Boolean expressions



Currently, we have

   (a and b) or c  ...prints as...  a and b or c  // a ? b ? c
   a and (b or c)  ...prints as... a and (b or c) // a ? (b ? c)

This is because 'and' has a higher binding power than 'or', so (a and b or
c) in fact does read back correctly as ((a and b) or c).

However, personally, I would find it clearer if mixtures of ands and ors
were always explicitly parenthesized.  Things like (a and b or c and (d or
e) or (c or e) and f) make my head hurt.  I'd prefer to see things like
this:

   (a and b) or c  ...prints as...  (a and b) or c  // (a ? b) ? c
   a and (b or c)  ...prints as... a and (b or c) // a ? (b ? c)

Is it possible to force that with the current output formatter? Or to
modify it to do this?  How do others feel about this?

          -s