Re: Disjoint types in SRFIs
Lassi Kortela 13 Jun 2021 10:40 UTC
> Show me any attempt and I claim that I will be able to show you its
> particular flaw.
OK, so there is more than one separate flaw.
> No; they are not shown to people. That's why the underlying record type
> is assumed to be opaque. The wording doesn't force the implementation to
> actually define a record type. If it wants so, it could use the
> following definition (assuming R6RS):
>
> (define-record-type fxmapping
> (sealed #t) (opaque #t)
> (nongenerative fxmapping-2bf340e5-304e-436e-8478-926c7040f3f)
> (fields ...)
> ...)
OK, in that case a UUID seems fine.
> Another alternative is to allocate human-readable IDs and track them in
> a table in <https://registry.scheme.org/
>
> This solution has two obvious disadvantages:
>
> (1) It needs a central registry outside the SRFI process.
> (2) It doesn't treat every SRFI fairly. Once a human-readable ID like
> "mapping" is registered, it can hardly be reused by a later SRFI. See
> the rationale of SRFI 97 why it is, say, (srfi :41 streams) and not
> (srfi streams).
Any reason not to simply use things like "srfi-146-mapping" and
"srfi-224-mapping" as the unique names? If the same type is used in more
than one SRFI, it could be numbered after the first SRFI it appeared in.