<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div class="im"><span style="color:rgb(34,34,34)">I don't think so because the interpreter and compiler unwrap symbols when checking if they refer to macros.  Do you have an example where this is not happening?</span></div>

</blockquote><div><br></div><div style>This demonstrates the problem I'm having in using a macro to attach source info to symbols that name macros:</div><div style><br></div><div style>;OK</div><div style>(eval `(#(,##source2-marker lambda "foo" 1) () 'hi))<br>

</div><div style><br></div><div style><div>;Also OK<br></div><div>(eval `(,(source-at "foo" 1 2 'lambda) () 'hi))</div></div><div style><br></div><div style><div>;fails</div><div>(eval '((source-at "foo" 1 2 lambda) () 'hi))<br>

</div><div>*** ERROR IN "foo.cljscm"@1.2 -- Macro name can't be used as a variable: lambda</div></div><div style><br></div><div style>;likewise when compiling:</div><div style>;;;; fail.scm ;;;;;;</div><div style>

<div>(define fail ((source-at "foo" 1 2 lambda) () 'hi))</div><div><br></div><div><div> $ gsc -debug fail.scm</div><div>*** ERROR IN "/tmp/foo"@1.2 -- Macro name can't be used as a variable: lambda</div>

</div><div><br></div><div style>I think the unquote in the two OK examples suggests that some kind of pre-macro-expansion evaluation stage is needed for attaching source information to symbols that refer to macros.</div>
<div style>
<br></div></div></div></div></div>