Am Mo., 26. Apr. 2021 um 09:36 Uhr schrieb Lassi Kortela <xxxxxx@lassi.io>:

> That will be the problem of the implementer. I take the case of JSON
> parsing: without a light spec such as : need to stream parse JSON, you
> end up with a much different implementation.

The spec would be driven by: 1) what features users need; 2) what kind
of API has good cohesion with the rest of the library collection.

As an example of 2), generators and accumulators could be the standard
way to solve a particular kind of problem across the collection. That
would lead users to expect that all libraries in the collection provide
a generator interface for some kinds of tasks. I.e. generator to read
random bytes, generator to read JSON, generator to read zip files, ...

This is an example where consensus is hard to reach. While generators and accumulators are certainly easily implementable to be fast, they lead to an imperative, not functional programming style. Thus there use should be minimized IMHO.

Others may disagree (and want to use Scheme more like a conventional language than a mostly purely functional one). So to reach any kind of consensus, the libraries in the collection can only be loosely coupled. This is okay if there are enough adapters.