I am more than a little confused by the behavior of macros that expand to
submodules. In the following example, I don't have any introduced names, but
the `x' binding created by the submodule is not usable from the enclosing
module. What confuses me even further is that if I (require (rename-in 'mod
[name name])) instead, it works; I would expect that to always be a no-op. Can
anyone explain this behavior?
#lang racket
(define-syntax foo
(syntax-rules ()
((_ mod name)
(begin
(module mod racket/base
(define name 1)
(provide name))
(require 'mod)
name))))
(foo m x)
==> x: unbound identifier in module in: x
--
Brian Mastenbrook
[email protected]
http:/brian.mastenbrook.net/
____________________
Racket Users list:
http://lists.racket-lang.org/users