EIEIO is an Emacs lisp program which implements a controlled
object-oriented programming methodology following the CLOS standard.
EIEIO also has object browsing functions, and custom widget types. It
has a fairly complete manual descrbing how to use it.
EIEIO also supports the byte compiler for Emacs and XEmacs. Because of
the nature of byte compiling, EIEIO is picky about the version of emacs
you are running. It supports Emacs 19.2x+, Emacs 20.x, and XEmacs 19.1x.
Byte compiling EIEIO is VERY IMPORTANT if performance is important.
EIEIO supports documentation generation. If you write an OO API to
something, the eieio-doc functions will write your texinfo manual for
you. (Just make sure you use the documentation features of class slots
while authoring your software.)