Does anyone have advice on how to debug scope-manipulating meta-programs?
I'm not talking about the little 5 line example macros shown in the docs, but 
thousands of lines of
meta-programming that intentionally manipulates binding, but sometimes 
apparently does it wrong.

Part of the problem is that I don't know of a way to unit test for (or specify 
with contracts) correct scopeyness.
All my tests pass.
When a program goes wrong it's large and complicated and I can't find a small 

My current method for debugging is to combine `racket/trace` and `debug-scopes` 
to trace smelly parts
of the code.
I then sprinkle `syntax-local-introduce` until the output looks more reasonable.
This makes me feel like setting fire to "sets of scopes" and using gensym.
Also, it doesn't seem to be working.

William J. Bowman
Northeastern University
College of Computer and Information Science

You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
For more options, visit

Attachment: signature.asc
Description: PGP signature

Reply via email to