In SICStus Objects, the visible predicates of the source
module (context) for the object definition may be called in the
body of a method. (The : prefix is used to distinguish such
calls from method calls.) Any (: prefixed) directives
occurring among the method-clauses are also executed in the same
source module. For example, to import into the source
module and call the public predicates of a module, the
built-in predicate use_module/2 and its variants may be
used:
some_object :: {
:- :use_module(library(lists), [append/3]) &
double_list(X, XX) :- :append(X,X,XX)
}.