The method `object
is used to access slots directly, bypassing possible methods with the
same name. Normally, it should only be used in
->initialise (see below) and when defining a
method with the same name as a variable. Below is a fragment where a type
slot is displayed by a text object named type in a graphical
object. This variable has access get, associating a universal
<-type that yields the current value of
the slot. The implementation of
->type uses the
->slot method to write the argument in the
slot and subsequently performs the required side-effects. The ...
indicate where the fragment is incomplete.
variable(type, name, get, "Epistemological type"). initialise(D, Type:name, ...) :-> send_super(D, initialise), send(D, slot, type, Type), send(D, display, new(T, text(Type))), send(T, name, type), ... type(D, Type:type) :-> "Modify the epistemological type":: send(D, slot, type, Type), get(D, member, type, Text), send(Text, string, Type).