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