Thanks Matt - this is very good tip! ;) <br><br>Appreciated,<br>yinso <br><br><div><span class="gmail_quote">On 4/29/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;">After finally stepping back to try to see what you&#39;re after, I think
<br>maybe you want to work in something like the following mode:<br><br> &gt; (compile-enforce-module-constants #f)<br> &gt; (module foo mzscheme<br>&nbsp;&nbsp;&nbsp;&nbsp; (define bar (lambda (x) x))<br>&nbsp;&nbsp;&nbsp;&nbsp; (provide bar))<br> &gt; (require foo)
<br> &gt; (bar 10)<br> 10<br> ;; decide to explore `bar&#39; some more...<br> &gt; (current-namespace (module-&gt;namespace &#39;foo))<br> &gt; (require (lib &quot;trace.ss&quot;))<br> &gt; (trace bar)<br> (bar)<br> &gt; (bar 10)
<br> |(bar 10)<br> |10<br> 10<br> &gt;<br><br>That is, to perform debugging tasks like `trace&#39;ing a module binding,<br>switch to a namespace that reflects the module&#39;s content where `trace&#39;<br>can work (as long as module constants are not enforced up front).
<br><br>If that&#39;s not exactly right, I still imagine that you&#39;re trying to<br>create a debugging tool, and so reflective operations like<br>`module-&gt;namespace&#39; and even `eval&#39; are maybe the right starting
<br>points, instead of `#%top&#39;.<br><br>Matthew<br><br>At Mon, 23 Apr 2007 21:05:46 -0700, &quot;Yin-So Chen&quot; wrote:<br>&gt; Yes, I don&#39;t really want #%top per se.&nbsp;&nbsp;My scenario is to &quot;alias&quot; an<br>&gt; imported id (
i.e. not something privately defined by the module) and it<br>&gt; looks more like below:<br>&gt;<br>&gt; &gt; (module foo mzscheme<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; (define bar (lambda (x) x))<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; (provide bar))<br>&gt; &gt; (begin<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; (require (prefix baz: foo))<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; (define bar baz:bar))<br>&gt; &gt; baz:bar<br>&gt; #&lt;procedure:bar&gt;<br>&gt; &gt; bar<br>&gt; #&lt;procedure:bar&gt;<br>&gt;<br>&gt; Aliasing allow me to &quot;trace&quot; and set over the alias (
<br>&gt; <a href="http://list.cs.brown.edu/pipermail/plt-scheme/2007-March/016927.html">http://list.cs.brown.edu/pipermail/plt-scheme/2007-March/016927.html</a>).&nbsp;&nbsp;So I<br>&gt; extracted the exported variables for a module (
<br>&gt; <a href="http://list.cs.brown.edu/pipermail/plt-scheme/2003-November/003698.html">http://list.cs.brown.edu/pipermail/plt-scheme/2003-November/003698.html</a>) and<br>&gt; attempt to do write a macro that would automatically alias them, but all of
<br>&gt; the variables gets expanded to (#%top . variable) form, while if I manually<br>&gt; write it out like above, it is &quot;ok&quot;.<br><br><br></blockquote></div><br><br clear="all"><br>-- <br><a href="http://www.yinsochen.com">
http://www.yinsochen.com</a><br>...continuous learning...