Fractional precedence, so that it's always possible to squeeze an operator precedence between
two existing precedences. Ranges over [-20, 120]. A normal operator should have a precedence
within [0, 100). It might be useful to have a negative precedence if you're trying to model
some already existing system, for example in Haskell ($) has precedence 0, but clearly
if b then y else f $ x should be rendered without any parens, hence the precedence of
if_then_else_ is less than 0, i.e. negative.
The precedence of juxtaposition is 100. Normally you want juxtaposition to have the highest
precedence, but some languages have operators that bind tighter than juxtaposition, e.g.
Haskell's postfix _{_}: f z { x = y } means f (z {x = y}).