The Common Lisp Object System is based on generic functions, multiple inheritance, and declarative method combination. Many implementations also have a meta-object protocol, or MOP, often based on that described in AMOP

Any purporting-to-conform ANSI CL implementation will have CLOS built in. There are also "add-on" implementations from before it was part of standard CL: Closette is the code developed in the AMOP book and probably not practically useful, whereas PCL is fully-featured (if slower than a typical tuned commercial implementation might be) and has been used as the basis for the CLOS support in e.g. CMUCL and SBCL

Web pages: