[R6RS] R6RS records: non-generative record type descriptor
identity
Marc Feeley
feeley
Sun Aug 28 21:57:08 EDT 2005
On 28-Aug-05, at 10:13 AM, Michael Sperber wrote:
>
>
>> Moreover I don't see why the same type descriptor (in the sense of
>> eq?) must be returned every time since there are no mutation
>> operations on type descriptors.
>>
>
> While I think that there might be mutation operations in extensions
> (for example, for dealing with fine-grained opacity), I don't feel
> strongly about this. We do need to say what the relationship between
> the two type descriptors is, however. Can you suggest language to do
> that?
>
How about:
Two record type descriptors rtd1 and rtd2 denote the same type iff
(equal? rtd1 rtd2).
A generative record type descriptor created by a call to
make-record-type-descriptor is not equal? to any record type
descriptor (generative or non-generative) created by another call to
make-record-type-descriptor. A generative record type descriptor
rtd1 is only equal? to itself (i.e. (equal? rtd1 rtd2) iff (eq? rtd1
rtd2)).
Two non-generative record type descriptors are equal? iff the
following arguments of the calls to make-record-type-descriptor that
created these descriptors are the same (in the sense of equal?):
parent, uid, sealed?, opaque?, and fields. Note that the name
argument is not a discriminant part of the record type.
Marc
More information about the R6RS
mailing list