Pretty Printing

# SRFI 272: Pretty Printing

by Sergei Egorov

status: draft (2026-05-13)

keywords: I/O

- The SRFI Document
- Discussion Archive
- Git repo (on GitHub)
- srfi-272@nospamsrfi.schemers.org (subscribers only)
- Subscribe to srfi-272 mailing list

  daily digest?

- Unsubscribe from srfi-272 mailing list

## Abstract

This SRFI follows the traditional Scheme model of pretty printing, which treats it as a process distinct from general controlled formatting. While general-purpose formatters often prioritize specialized presentation at the expense of machine-readability, Scheme’s pretty-printers (such as those of SLIB and MIT Scheme) have traditionally treated pretty printing as a variant of `write`, differing primarily in the insertion of whitespace to make the presentation more palatable to humans. Common Lisp’s pretty-printer, by contrast, fills two roles simultaneously by integrating pretty printing with both its format facility and its generalized `write` procedures. This unified approach offers great power, but at the cost of complexity that can make it difficult to use effectively. We propose a specialized, layered approach, specifying five libraries of increasing functionality, where all but the first are optional. The libraries are downward-compatible: more powerful libraries satisfy all requirements of the simpler ones while adding new features. Implementors may choose to support a maximum level of functionality appropriate for their systems. Integration with monadic and string-based formatting libraries is supported.