[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