<div dir="ltr">Oops, forgot to reply to this, apologies!<div><br></div><div>Thanks for this Bill. More again for me to read up on. Generally I agree that in my experience, composition makes for better maintenance over inheritance. But was curious. Thanks for your thoughts.</div><div><br></div><div>iain</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Aug 2, 2020 at 2:36 PM &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">stuff.scm has define-class, define-method, etc.  I just use<br>
openlets, where the outer let can be the &quot;class&quot; and each<br>
instance inherits from it.  I find this much more flexible<br>
and easier to understand than CLOS-style machinery.  I read<br>
somewhere that this is called a &quot;prototype system&quot;.  I used<br>
CLOS heavily in cmn (back in the 90&#39;s), and found that<br>
the hierarchy simply made the code rigid (hard to change)<br>
and opaque (hard to read/debug).  A better debugger would have<br>
helped, but this was back in the dark ages.  Nowadays<br>
everyone says you should keep your hierarchies as shallow<br>
as possible, which means (does it not?) that no hierarchy<br>
is best :)<br>
<br>
</blockquote></div>