Gens and accs are just procedures of zero arguments and one argument respectively, so their efficiency is constrained by what they do.  Doing JSON pretty much requires char-by-char parsing.

On Tue, Jan 21, 2020 at 5:45 PM Lassi Kortela <xxxxxx@lassi.io> wrote:
> I propose that the read procedures be allowed to accept a generator that
> returns characters as well as an input port, and that the write
> procedures be allowed to accept an accumulator of characters as well as
> an output port.

Are character-by-character generators and accumulators reasonably fast?
Are they amenable to well-known compiler optimizations?