A Brief Guide to CLOS (1998)
I wondered if the author would mention method combinators, which he did.  They are super powerful, very useful...and a marvelous opportunity for spaghetti code.<p>Actually the CLOS combinators show learning from earlier mistakes and allow only :before, :after and :around, the most useful and the most comprehensible combinators.<p>Lisp Machine Lisp (including the &quot;zetalisp&quot; variant dreamt up by Symbolics&#x27; marketing department) had an enormous panoply of method combinators including full control structures: IIRC I had cause to resort at one time or another to :or, :and and :progn combinators (the latter being somewhat like :around, I suppose, but not the same).  They made the code extensible, compact, and completely unpredicatable (if you didn&#x27;t understand the <i>runtime</i> method hierarchy precisely which combined methods would be run in an :or combination?<p>Nevertheless I sometimes miss them to this day, even in my C++17 codebase!