<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">&gt; (define default (gensym))<br>
&gt; (define (default? x) (equal? x default))<br>
<br>
</div>(Using `eq?&#39; here is a common idiom.)<br></blockquote><div><br></div><div>ah, of course, thanks for the reminder.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
In any case, the real point here is not the macro -- it&#39;s the<br>
existence of a special `none&#39; value that marks an unsupplied value.<br></blockquote><div><br></div><div>absolutely, it&#39;s just a helper.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


It&#39;s potentially a convenient thing to have (which I wish for every<br>
time I do that `gensym&#39; dance), but it gets tricky with the fact that<br>
you might want to actually use that value -- same as the undefined<br>
value (which you get from (letrec ([x x]) x)) which could be used for<br>
the same purpose.<br></blockquote><div><br></div><div>you mean because of shadowing? (I&#39;m not sure I understood what you mean)</div><div> </div><div><br></div><div>Laurent</div></div>