S9 LIB  (pretty-print object <option> ...)  ==>  unspecific
        (pp object <option> ...)            ==>  unspecific
        (pp-file string <option> ...)       ==>  unspecific
        (pp-loop <option> ...)              ==>  unspecific

        (load-from-library "pretty-print.scm")

Pretty-print Scheme objects, programs, or files. PRETTY-PRINT attempts
to figure out whether OBJECT is a valid Scheme program. If so, it prints
it as code and otherwise it prints it as data. The automatic detection
can be disabled by passing an option to these procedures (see below).

PP is just a less verbose name for PRETTY-PRINT.

PP-FILE pretty-prints all objects in the file STRING.

PP-LOOP pretty-prints all objects read from (current-input-stream).

Any of these procedures accept the following <option>s that may be
passed to it after the object to print:

'CODE       Print OBJECT as if it was a Scheme program.
'DATA       Print OBJECT as if it was a Scheme object.
'SIMPLE     Attempt to keep some special forms in a single line,
            if they fit in one (IF, AND, OR, BEGIN, LAMBDA).
'MARGIN: n  Set the right margin to N. The printer will attempt
            not to write any output beyond that margin. The default
            margin is at column 72.

NOTE: This program handles only a subset of R4RS Scheme correctly
and removes all comments from its input program. Caveat utilitor.

(pp '(let ((a 1) (b 2)) (cons a b)))  ==>  unspecific

Output:  (let ((a 1)
               (b 2))
           (cons a b))
