On Sat, Feb 16, 2019 at 7:29 PM Marc Nieper-Wißkirchen <xxxxxx@gmail.com> wrote:
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)))

What do you expect the correct behavior to be?