Precedence of extraction driver symbols
There is currently no way to indicate the precedence or associativity of extraction driver symbols. This means that extraction printers have to assume the worst and print lots of parentheses. This is especially egregious in programs that use many references, as the argument of !
must be between parentheses if there is no special treatment for it.
Precedence and associativity could be indicated in drivers, e.g.:
syntax val (+) "%1 + %2" prec 6 assoc right
Symbols without such annotations can be assumed to have maximum precedence and no associativity, which is how they are currently handled.