37.4.3 Use of Modules

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