&gt; Something MOP related<p>Postmodern[0] defines simple wrapper objects so that you can access databases rows as objects. The same goes for the Elephant persistent database[1]. Cells[2] define metaobjects for classes with dataflow dependencies where slots can be automatically updated in a reactive fashion.<p>:AROUND methods and the like are used quite often. In fact, the default way of defining a &quot;constructor&quot; function for your class is to specialize &quot;initialize-instance&quot; with an :after qualifier, so that you can fill slots that could not be initialized with the arguments to &quot;make-instance&quot; or the default initargs.<p>[0] <a href="http:&#x2F;&#x2F;marijnhaverbeke.nl&#x2F;postmodern&#x2F;" rel="nofollow">http:&#x2F;&#x2F;marijnhaverbeke.nl&#x2F;postmodern&#x2F;</a><p>[1] <a href="https:&#x2F;&#x2F;common-lisp.net&#x2F;project&#x2F;elephant&#x2F;" rel="nofollow">https:&#x2F;&#x2F;common-lisp.net&#x2F;project&#x2F;elephant&#x2F;</a><p>[2] <a href="https:&#x2F;&#x2F;common-lisp.net&#x2F;project&#x2F;cells&#x2F;" rel="nofollow">https:&#x2F;&#x2F;common-lisp.net&#x2F;project&#x2F;cells&#x2F;</a>