Hi Martin,

Martin Becze <[email protected]> skribis:

> Guile currently doesn't allow loading multiple versions of a Module. For
> example this will not work.
>
> --- start.scm
> (import (a) (b (2)))
> (helloA)
> (helloB)
>
> --- a/a.scm
> (library (a)
>   (export helloA)
>   (import (rnrs) (b (1)))
>   (define helloA (lambda ()
>                 (display "hello from A1\n")
>                 (helloB))))
>
> --- b1/b.scm
> (library (b (1))
>  (export helloB)
>  (import (rnrs)))
>
> (define helloB (lambda ()
>                (display "hello from B1\n")))
>
> --- b2/b.scm
> (library (b (2))
>  (export helloB)
>  (import (rnrs))
>  (define helloB (lambda () (display "hello from B2\n"))))
>
> Is there are away to get around this? What is the reason for this
> behavior? Is it part of r6rs or something?

I’m not sure what R6RS says, but Guile supports only one instance of a
module with a given name at run time.

The only way around it would be to give the two modules different names.

HTH,
Ludo’.


Reply via email to