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> &lt;<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu
</a>&gt; 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>&gt; Of course - any data stored in a hash table would live until the hash table
<br>&gt; goes out of scope or until the data gets overwritten, and it doesn&#39;t obey<br>&gt; lexical rules.<br>&gt;<br>&gt; Are there ways to make it obey lexical rules so the register can behave more<br>&gt; like an actual symbol table?&nbsp;&nbsp;
i.e. if a type is declared within a lexical<br>&gt; scope as it goes out of scope the value is removed from the register.&nbsp;&nbsp;I<br>&gt; assume that if this is possible there needs to be a way to know that I&#39;m in<br>&gt; a different lexical scope then before.
<br><br>See `make-bound-identifier-mapping&#39;.<br><br>There&#39;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>