Representation of Symbols used in CNF formulas. Symbols have a name and a
domain (a set of possible values), and are stored in a CnfUniverse.
Once created, it is currently not intended to modify or delete symbols.
Symbols can be used in CNF formulas by creating CnfAtom objects, either
by using the %among% operator or by using the CnfAtom() constructor
explicitly.
This is part of the CNF representation tooling, which is currently considered
experimental; it is for internal use.