EIEIO is a CLOS (Common Lisp Object System) compatibility layer. Due
to restrictions in the Emacs Lisp language, CLOS cannot be completely
supported, and a few functions have been added in place of setf.

What EIEIO supports

    1.A structured framework for the creation of basic classes with
      attributes and methods using singular inheritance similar to CLOS.
    2.Type checking, and slot unbinding.
    3.Method definitions similar to CLOS.
    4.Simple and complex class browsers.
    5.Edebug support for methods.
    6.Imenu updates.
    7.Byte compilation support of methods.
    8.Help system extensions for classes and methods.
    9.Automatic texinfo documentation generator.
   10.Several base classes for interesting tasks.
   11.Simple test suite.
   12.Public and private classifications for slots (extensions to CLOS)
   13.Customization support in a class (extension to CLOS)