a) schema binding order
\theta S [x := value] is being printed as \theta S [value := x]
b) parenthesis annotations when precedences are important
some cases *must* not have parenthesis as ZEves don't like them; other must have for the same reason.
the rest, parentheses are needed for disambiguation/precedence solving. At the moment some cases are missing.
We need a general solution, rather than a bunch of special cases. Here is the bug example:
equality substitute 1 \upto (x+y)
is sent to zeves as "1 \upto x + y". which parses as "(1 \upto x) + y" and obviously wouldn't work as there are no equations for 1 \upto x
or x may even not be the right type.