<div class="gmail_quote">On Sat, Nov 21, 2009 at 5:14 AM, Carl Eastlund <span dir="ltr">&lt;<a href="mailto:carl.eastlund@gmail.com">carl.eastlund@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Marco (I almost typed &quot;Macro&quot; in place of your name),<br>
<br>
Why do you need to use &quot;Y&quot; to perform the recursive expansion?  Why<br>
not just have your #%module-begin run local-expand on a regular<br>
#%module-begin wrapped around the contents, and post-process the fully<br>
expanded result?  You can go from unexpanded code to expanded code in<br>
one non-recursive line of code.  Then you can emit whatever code you<br>
want.  And you don&#39;t need to emit lists (in fact, emitting lists will<br>
give you *bad* results with respect to hygienic macro expansion) if<br>
you want &quot;Scheme ASTs&quot;.  Syntax objects are Scheme ASTs, and have<br>
source location information -- you might as well just keep the whole<br>
syntax object around.  The only real work you&#39;ll need to do is<br>
replacing top level expressions and the bodies of top level<br>
definitions with stubs (calls to void), and that&#39;s very shallow<br>
processing.<br>
<font color="#888888"><br>
--Carl<br>
</font></blockquote></div><br>You are right, of course. I was under the impression that local-expand only<br>expands the immediate subform. <br><br>I&#39;m sorry for wasting yor time.<br><br>Marco<br>