The method `object<->slot'
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
method <-type that yields the current value of
the slot. The implementation of ->type uses the
->slot method to write the argument in the <-type
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).