Introduction

is the object oriented layer of . Its implementation is derived from version 1.3 of the Gregor Kickzales Tiny Clos package [#!Tiny-Clos!#]. However, it has been extended to be as close as possible to CLOS, the Common Lisp Object System[#!CLtL2!#]. Some features of are also issued from Dylan[#!Dylan!#] or SOS[#!SOS!#].

Briefly stated, the extension gives the user a full object oriented system with meta-classes, multiple inheritance, generic functions and multi-methods. Furthermore, the whole implementation relies on a true meta object protocol, in the spirit of the one defined for CLOS[#!AMOP!#]. This model has also been used to embody the predefined Tk widgets in a hierarchy of classes. This set of classes permits to simplify the core Tk usage by providing homogeneous accesses to widget options and by hiding the low level details of Tk widgets, such as naming conventions. Furthermore, as expected, using of objects facilitates code reuse and definition of new widgets classes.

The purpose of this appendix is to introduce briefly the package and in no case will it replace the reference manual (which needs to be urgently written now ...). In particular, methods relative to the meta object protocol and access to the Tk toolkit will not be described here.