[R6RS] non-opaque record equality

William D Clinger will at ccs.neu.edu
Sun Feb 26 15:39:34 EST 2006

My main concern with defining equal? to compare non-opaque
records recursively is that equal? might not terminate.
Reading between the lines, I think that may be a concern
for some of the other editors as well.

I propose we define an always-terminating predicate, say
equiv?, that always returns the same value as equal? when
equal? actually terminates and returns a value.  As this
predicate is desirable for reasons independent of records,
I'll propose it in a new thread.

I also propose, however, that this new equiv? predicate
compare non-opaque records recursively, with guaranteed
termination.  Then we can define equal? to behave like
equiv? on records without sacrificing the non-terminating
behavior of equal? that we have grown to love when equal?
is used on circular structures that are composed of pairs
and vectors.

That wouldn't remove the possibility of implementation
dependencies, as Kent noted, but it would remove concerns
about non-termination.


More information about the R6RS mailing list