[R6RS] revised draft of record srfi

Michael Sperber sperber
Mon Aug 1 12:52:24 EDT 2005

A minor point:

William D Clinger <will at ccs.neu.edu> writes:

> 7)  Specifying that records created by (record-constructor rtd)
> are equal? if and only if they are eq? is entirely reasonable,
> and is also the simplest thing to do.  It does not in any way
> prevent an implementation from using records to represent pairs,
> vectors, strings, and what have you.  The implementation has the
> option of using a different record constructor whose existence
> is not even hinted at by this SRFI, or of simply redefining the
> equal? procedure to special-case the types for which the equal?
> procedure should behave differently from eq?.

I'm not sure I follow you here.  I think Marc is saying that, if the
R6RS specified that two records are equal? iff they are eq?, it would
disallow this:

(define p1 (cons 1 2))
(define p2 (cons 1 2))
(record? p1) => #t
(record? p2) => #t
(eq? p1 p2) => #f
(equal? p1 p2) => #t

... which we want to permit, I think.  (Though not require.)

Your suggestion does nothing to address this, I think.  But possibly
I'm misunderstanding one or both of you.

Cheers =8-} Mike
Friede, V?lkerverst?ndigung und ?berhaupt blabla

More information about the R6RS mailing list