[R6RS] underspecification of eqv? and eq? on records
William D Clinger
will at ccs.neu.edu
Sun Mar 18 13:18:19 EDT 2007
While implementing (r6rs records procedural), I noticed
that section 5.1 says several things like
For any constructor returned by record-constructor,
the following holds:
(let ((x (constructor v ...)))
(eqv? x x)) ==> #t
That allows behavior such as the following, which will
not be difficult for me to implement in Larceny's highly
pedantic R6RS-conforming mode [1]:
(let ((x (constructor v ...)))
(list 3 4)
(eqv? x x)) ==> #f
If the purpose of the examples in section 5.1 is to
describe the behavior of eqv? on records, they fail
miserably. A more rigorous explanation is needed.
Will
[1] http://larceny.ccs.neu.edu/larceny-trac/wiki/R6RSconversion
More information about the R6RS
mailing list