Lennart Augustsson has just posted a couple of queries concerning the
Haskell Report's transformations for defining the semantics of
pattern-matching constructs.

His questions are of the following form:

  In the RHS of the translation, does symbol `X' refer to its meaning
  in the canonical module PreludeCore, or its meaning in the context
  of the translated expression?

I think it's pretty clear (from cultural understanding, not from the
Report) that the former meaning is intended, so I assume that the
question is really `How could the Report make this intention clear?'

It's probably easiest just to insert a sentence explaining the
convention to be observed, but it may be worth noting that the Lisp
community has ample experience with this issue. In most Lisps,
syntactic translation (macro definition) is part of the language, not
the metalanguage.  Thus, avoiding or requesting name-capture in
macro-expansions is a user-level issue, requiring attention on the
part of language-feature designers.  A good place to start reading
about this subject is the appendix on macros in the Revised^4 Report
on Scheme.
  -- Dan Rabin ([EMAIL PROTECTED])

Reply via email to