An abstraction of the Boolean Function Representation used by GL.
The particular Boolean function representation that we are using at any
particular time is governed by bfr-mode, and operations like
To support aignets, it is important for BFRs to be well-formed, i.e. literals whose node index is in bounds for the current aignet. So we also use a bfrstate object which simultaneously tracks the bfr-mode and current bound.