From: Dan Weinreb
Subject: Look out for daemons
Date: 
Message-ID: <88b131bc-5f7f-4dbc-946a-17caf6a3f9d8@r32g2000vba.googlegroups.com>
An important point to remember is that using slot-value or with-slots
will go directly to the slot rather than running the accessor methods,
and so if you have, say, a :before daemon on a slot, it won't get
called. This might cause a bug, or at least a modularity violation
that could lead to future bugs.  If you need to anticipate the
possibility of such daemons, then I doubt there's a way to avoid two
dispatches.

Possibly your program could use defstruct, which would make everything
cheaper, in most implementations of CL.