GOOPS is the object oriented extension to Guile. Its
implementation is derived from STk-3.99.3 by Erick Gallesio and
version 1.3 of Gregor Kiczales Tiny-Clos. It is very close in
spirit to CLOS, the Common Lisp Object System (CLtL2) but is
adapted for the Scheme language. While GOOPS is not compatible with any
of these systems, GOOPS contains a compatibility module which allows for
execution of STKlos programs.
Briefly stated, the GOOPS extension gives the user a full object
oriented system with multiple inheritance and generic functions with
multi-method dispatch. Furthermore, the implementation relies on a true
meta object protocol, in the spirit of the one defined for CLOS
(Gregor Kiczales: A Metaobject Protocol).