In the reference implementation, the state variable "output" is
changed locally in the procedures "trimmed/lazy", "wrapped/char",
"upcased" and "downcased". The original version of "output" is saved
and called by the modified version of "output".
This does not yield the correct behavior in all cases as in the
following example:
(fn ((o output))
(sequence
(with! (output (make-my-output o)))
(wrapped/char (sequence FMT1 (with! (output o)) FMT2)))