Ppml offers a modular pretty printing mechanism; a pretty printer may be composed of other pretty printers. A modular pretty printer has no associated Ppml specification, it is simply specified by resources as a list of other pretty printers, which themselves may be modular or ``real.'' You may dynamically and incrementally change the composition of a modular pretty printer in order to modify the presentation of a program. This is very important because it allows you to add to or change how a program is pretty printed without modifying existing programs.
We call the pretty printer from which the formatter has chosen a rule for the current subtree the current pretty printer.