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) }.