Whether to output logical connectives using Unicode symbols.
The Babel signature, to decide whether we need to escape constants because they do not fit the naming convention.
Converts a lambda expression into a document.
Converts a lambda expression into a document.
At every point in the conversion, we keep track of:
The lambda expression to convert.
Whether we already know the type of this expression.
Names bound by enclosing binders.
Already used free identifiers, together with the variable or constant they represent.
The priority of the enclosing operator.
Pretty-printed document and the free identifiers.
Exports lambda expressions in the Babel format. You probably do not want to use this class, use one of expression.toString, .toSigRelativeString, or .toAsciiString instead. These are all implemented using this class.
This exporter is implemented using the pretty-printing library included in Kiama.