Wed Jul 22 11:21:27 CEST 2009

Phase namespace problems

It's about time I understand these things:

/home/tom/staapl/staapl/tools/stx.ss:125:5: compile: unbound
identifier (and no #%app syntax transformer is bound) at: let-syntax
in: ...

There are two sides of the coin: the _importer_ needs to make sure
that the identifiers it wants to use at different phases are loaded
correctly.  The _exporter_ needs to make sure that all identifiers
referenced at all stages are available at the definition site.

What I forgot was a (require (for-template scheme/base)) at the
definition site, which made the `let-syntax' identifier unknown.

TODO: find a set of rules to debug such statements.  Look here[1] at
the for-meta form.

Turn this into a question: why is a "(require (for-template
scheme/base))" necessary if the use point has the scheme/base already

[1] http://docs.plt-scheme.org/reference/require.html#%28form._%28%28lib._scheme/base..ss%29._require%29%29