:- object(history_point, imports(point_history), instantiates(class), specializes(point)). :- info([ version is 1.1, date is 2000/10/31, author is 'Paulo Moura', comment is 'Two dimensional point remembering past positions.', source is 'Example adopted from the SICStus Objects documentation.']). move(X, Y) :- ::position(OldX, OldY), ^^move(X, Y), ::add_to_history((OldX, OldY)). print :- ::print_history, ^^print. instance_base_name(hp). default_init_option(history-[]). default_init_option(Default) :- ^^default_init_option(Default). process_init_option(history-History) :- ::init_history(History). process_init_option(Option) :- ^^process_init_option(Option). :- end_object.