eieio: Initialization

 
 15.1 Initialization
 ===================
 
 When creating an object of any type, you can use its constructor, or
 ‘make-instance’.  This, in turns calls the method ‘initialize-instance’,
 which then calls the method ‘shared-initialize’.
 
    These methods are all implemented on the default superclass so you do
 not need to write them yourself, unless you need to override one of
 their behaviors.
 
    Users should not need to call ‘initialize-instance’ or
 ‘shared-initialize’, as these are used by ‘make-instance’ to initialize
 the object.  They are instead provided so that users can augment these
 behaviors.
 
  -- Function: initialize-instance obj &rest slots
      Initialize OBJ.  Sets slots of OBJ with SLOTS which is a list of
      name/value pairs.  These are actually just passed to
      ‘shared-initialize’.
 
  -- Function: shared-initialize obj &rest slots
      Sets slots of OBJ with SLOTS which is a list of name/value pairs.
 
      This is called from the default constructor.