Hi Matthew - thanks for the tip and I will experiment with it.<br><br>Thanks,<br>yc<br><br><div><span class="gmail_quote">On 8/15/07, <b class="gmail_sendername">Matthew Flatt</b> <<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu
</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">At Wed, 15 Aug 2007 01:23:01 -0700, YC wrote:<br>> Of course - any data stored in a hash table would live until the hash table
<br>> goes out of scope or until the data gets overwritten, and it doesn't obey<br>> lexical rules.<br>><br>> Are there ways to make it obey lexical rules so the register can behave more<br>> like an actual symbol table?
i.e. if a type is declared within a lexical<br>> scope as it goes out of scope the value is removed from the register. I<br>> assume that if this is possible there needs to be a way to know that I'm in<br>> a different lexical scope then before.
<br><br>See `make-bound-identifier-mapping'.<br><br>There's no way for bindings to get dropped from the table, but scope<br>should work out right. Also, when compiling modules, a fresh module<br>instantiation for each expand/compile will effectively clear the table
<br>each time you expand/compile a module.<br><br>Matthew<br><br></blockquote></div><br>