On May 12, 2009, at 2:51 PM, leppie wrote:

There is 1 surprise though (maybe a bug, probably intended).

It is intended.  (And it doesn't bother me a bit honestly and
if I change the behavior tomorrow, and your code breaks, then
your code sucks :-))

Why is it intended this way?  This issue came up in 2006 or so
when this way a hot topic and when I didn't understand it well.
The question was about the behavior of the following:

(library (L1) (export x) (import (rnrs))
  (define x 1)
  (display "L1\n"))

(library (L2) (export x) (import (rnrs) (L1))
  (display "L2\n"))

#!r6rs
(import (rnrs) (L1) (L2))
(display x)

The x in the script is defined in L1 and is imported from two
distinct paths: one directly from L1 and one indirectly through
L2.  So, is the x in the script the one from L1 or the one from
L2?  I honestly don't care as long as it's value is 1 and
neither should you.  :-)

Aziz,,,

Reply via email to