[r6rs-discuss] [Formal] (r6rs base) must also export _ and ... at level 1

R. Kent Dybvig dyb at cs.indiana.edu
Fri Jan 26 15:20:16 EST 2007


> >> Since imported identifiers cannot be redefined, it is impossible to stomp on
> >> these identifiers if they are bound in (r6rs records).
> >
> > That's incorrect, even if one ignores the likelihood that implementations
> > will provide traditional interactive environments.  They can be stomped on
> > by local bindings, which is what I think is most likely:
> >
> >  (define foo
> >    (lambda (fields)
> >      ---
> >      (let (---)
> >        (define-record-type foo (fields (mutable x)))  => syntax violation
> >        ---)))
>
> Ah, okay, but this particular violation will happen also if "fields" is left 
> unbound in (r6rs records), so I don't understand how the example applies to the 
> question of whether binding them is better or worse.

I agree, but I was not suggesting that we leave 'fields' and other
define-record-type noise words unbound while still using free-identifier=? 
for the comparison; rather, I am suggesting that we weight the costs and
benefits of treating the noise words as symbols, i.e., leaving them
unbound but comparing them symbolically.

Kent



More information about the r6rs-discuss mailing list