<br><div class="gmail_quote">On Mon, Aug 9, 2010 at 4:35 PM, Ryan Culpepper <span dir="ltr">&lt;<a href="mailto:ryanc@ccs.neu.edu">ryanc@ccs.neu.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2) when (require (for-syntax)) is used - the function was defined in phase 0, but is imported into phase 1... would it not handle syntax matching at phase 0? <br>
</blockquote>
<br></div>
When require for-syntax is used, the module where the literal occurs is at phase 1, so it only has a binding for the literal at phase 1. (The function is at phase 0 *relative to its enclosing module*, but it&#39;s at &quot;absolute&quot; phase 1.) Adding the require for-template (relative phase -1) to the auxiliary module (at phase 1) adds a binding at the right absolute phase, 0.<br>
<font class="Apple-style-span" color="#888888"><br></font></blockquote></div><br>
<div>Thanks Ryan.  I think I more or less get the idea of phase shifting now.  It would seem that if I ever define such function at phase 0, adding (require (for-template)) will and should be automatic going forward.  </div>
<div><br></div><div>Thanks again.</div><div>yc</div><div><br></div>