[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Eq? issue

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