Common Lisp the Language, 2nd Edition
Methods for the generic function reinitialize-instance may be defined to specify
actions to be taken when an instance is updated. If only :after
methods for reinitialize-instance are defined, they will be run
after the system-supplied primary method for initialization and
therefore will not interfere with the default behavior of
reinitialize-instance.
Methods for shared-initialize may be defined to customize class
redefinition (see section 28.1.9.5).