Re: more comments Peter McGoron 18 May 2026 11:29 UTC

On 5/18/26 02:17, John Cowan wrote:
> Is there a reason to allow any other representation?  Bytevectors are
> universal.  If the internal representation is allowed to be an
> arbitrary datum, you need to use `write` and `read` to persist it; if
> it's a bytevector, persistence in binary or textual formats is
> trivial. Of course, the library can convert from the bytevector to a
> bunch of 64-bit integers or whatever it needs.

Bytevectors are universal but encoding states in bytevectors requires
considerations (like endianness) that a datum representation doesn't
need to consider. I don't see why needing `read` and `write` is a bad
thing, it's in every Scheme.

One could write their own serializer/deserializer for Scheme datum
values (the standard ones, anyways) that fits into whatever larger
binary/textual format they are using, in a nicer way than just embedding
a binary blob.

 > That seems plausible, but it's the library, not the port, that should
provide this predicate, because we don't allow ports to be
reinitialized; they are initialized when created.

Yes.

-- Peter McGoron