An abstract pretty printer

The author has distilled the basic operations of the pretty printer into an abstract pretty printer that uses procedural parameters to perform low-level printing actions. By encapsulating the algorithm in one place, all the pretty-printing utilities will use the same algorithm, and the algorithm itself can be changed easily. The author describes how the abstract pretty printer can be used for basic design, printing to files and screens, setting the cursor, identifying a node, formatting text, and lexical changes.<<ETX>>