A simple class definition begins with a statement of the form
:- class ClassName = [SlotDef, ...].
The class's slots are described in the list of SlotDef terms. It is possible, though not often useful, to define a class with no slots, by specifying the empty list. In that case the ‘=’ and the list may be omitted.
The class's methods are defined following the class/1
directive,
by Prolog clauses. Most of this section is about defining and using
methods.
The class definition ends with any of the following:
:- end_class ClassName.
or
:- end_class.
or the next class/1
directive or the end of the file. The
ClassName argument to end_class/1
must match the class name in the
corresponding class/1
directive. It is not possible to nest one class
definition inside another.