I think this is the essentially same issue as in `afl` in the thread
where I just re-replied.
It looks like `curly-fn` wasn't introducing a mark the way that `afl`
did, and so it wasn't defending against a local `let` binding with the
old expander. For example,
#lang curly-fn racket
(let ([let 5])
#{values})
reports an error with the old expander, instead of avoiding the local
binding of `let` for the identifier introduced by `#{....}`.
For the new expander, the idea is to add a scope to the entire module
read by `#lang curly-fn`, but arrange for that scope to be removed in
the identifiers introduced by `#{....}` so they won't be bound by
anything in the enclosing module.
At Sat, 18 Jul 2015 11:41:26 -0700, Alexis King wrote:
> I’ve found an error that I believe is the fault of my curly-fn package under
> the new macro-expander, but it’s a little bit odd, and I’m having trouble
> figuring out exactly what the problem is. Specifically, the error doesn’t
> occur within the curly-fn package itself, only a package that depends on it,
> and even then I’ve only managed to reproduce the error using two files.
> Trying
> to cause the same problem using submodules doesn’t work, either.
>
> The simplest possible test case I’ve found to reproduce the problem is as
> follows:
>
> ; ambiguous.rkt
> #lang curly-fn racket/base
> #{values}
>
> ; dependent.rkt
> #lang racket/base
> (require "ambiguous.rkt")
>
> An error is signaled by ‘dependent.rkt’:
>
> let: identifier's binding is ambiguous
> context:
> #(21084 module) #(21093 module curly-parser 0) #(113962 module)
> #(113963 module ambiguous 0)
> matching binding:
> #<module-path-index:(racket/base)>
> #(113962 module) #(113963 module ambiguous 0)
> matching binding:
> #<module-path-index:(racket/base)>
> #(21084 module) #(21093 module curly-parser 0) in: let
>
> If I understand this correctly, this means that for some reason, there are
> conflicting bindings for ‘let’ in this example, probably due to how my
> curly-fn meta-language provides identifiers (and uses ‘let’ from racket/base
> in its expansion), but I really have no idea why this is manifesting in this
> way, nor do I know how to fix it.
>
> Could anyone point me to what exactly is wrong here?
>
> Alexis
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-dev/B5D45B8F-6059-4104-AC35-CB0B683EFF
> BA%40gmail.com.
> For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"Racket Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/racket-dev/20150718214100.C42F86501BE%40mail-svr1.cs.utah.edu.
For more options, visit https://groups.google.com/d/optout.