<div dir="ltr">Thanks Bill, I shall use your example! I&#39;m loving the environment flexibility.  I got so excited making my algorithmic process object hierarchy I went and ordered &quot;The Art of the Meta-object Protocol&quot;, haha. I don&#39;t think I&#39;ll be able to happily use a language that tells me how objects *must* work anymore... :-)<div><br></div><div>iain</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Feb 7, 2021 at 7:11 AM &lt;<a href="mailto:bil@ccrma.stanford.edu">bil@ccrma.stanford.edu</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Another possibility:<br>
<br>
    (let init-loop ((args init-args))<br>
       (unless (null? args)<br>
         ((if (defined? (car args) env) let-set! varlet) env (car args) <br>
(cadr args))<br>
         (init-loop (cddr args)))))<br>
<br>
varlet adds a new binding to the let even if one already<br>
exists for the symbol (shadowing the old one).<br>
<br>
<br>
</blockquote></div>