The main classes of the package are:
The class interface consists of protected member functions whose names start with an underscore ("_") such that the respective names can be overriden by concrete versions without underscore in derived classes. This primitive form of inheritance is used instead of a true virtual base class for efficiency reasons.
The original version of the package borrowed many ideas from the BDD package of Brace, Rudell, and Bryant written in C which is still reflected in some of the low-level fine-tuning decisions. (See K. S. Brace, R. L. Rudell, and R. E. Bryant, "Efficient implementation of a BDD package". In Proc. of 27th DAC, 40-45, 1990.)