This page is part of the web mail archives of SRFI 76 from before July 7th, 2015. The new archives for SRFI 76 contain all messages, not just those from before July 7th, 2015.
I have a few questions regarding the eq?-issue:
- Can one construct/traverse an eq?-cyclic or eqv?-cyclic graph of
immutable record nodes?
According to the spec, it seems that an eq? cyclic graph of
immutable nodes cannot be constructed, so it would have to be
eqv?-cyclic, but the spec does not guarantee that
(let ((f (lambda () (construct ...))))
(eqv? (f) (f))) => #f
for /immutable/ records, which I think would be required for
such cyclic graphs.
- I would not like to artificially declare an immutable record as
mutable just so I can use it in a cyclic graph.
- A problem with treating mutable and immutable differently is that
mutable might easily become immutable in the process of development
if a field is dropped or changed - suddenly a program may break in
places that are difficut to debug.
- Another problem is that programs that use eq?/eqv? incorrectly will
mostly work on some Schemes, only to fail, and then mysteriously
depending on compiler switches and type inference controlling unboxing,
on others.
Cheers
Andre