[R6RS] `eqv?' on immutable records
R. Kent Dybvig
dyb at cs.indiana.edu
Mon May 14 16:25:49 EDT 2007
> It would be a much bigger deal for programmers.
> With the semantic change you advocate, programmers
> would have to be taught that the beta rule cannot
> be used without lifting quoted constants outside
> the redex.
I'm not sure it's a change, is it? Is R6RS actually clear on this point?
If you're talking about a programmers who are trying to understand how an
implementation *might* behave, you are right that my suggestion
invalidates the pure subtitution model wrt constants. Note, however, that
it's already invalid for programmers who are trying to understand know how
an implementation actually *does* behave, since implementations may not
actually copy constants (and I suspect most don't).
> All sorts of program transformations that Scheme
> programmers currently take for granted would be
> made more complex by the semantics you advocate.
I don't think that's true. Transformations that programmers perform on
their own code are never bound by the semantics of the language. If the
identity of constants doesn't matter in their programs, they are not
inhibited by my suggestion.
My suggestion would inhibit compilers from making certain transformations
or require them to be more careful in doing so.
More information about the R6RS