4.11.15 Module Name Expansion

The concept of a source module is explained in ref-mod-som. For any goal, the applicable source module is determined when the goal is compiled rather than when it is executed.

A procedure that needs to refer to the source module has arguments designated for module name expansion. These arguments are expanded when code is consulted, compiled or asserted by the transformation X -> M:X where M is the name of the source module. For example, the goal call(X) is expanded into call(M:X) and the goal clause(Head, Body) is expanded into clause(M:Head, Body).

Module name expansion is avoided if the argument to be expanded is already a :/2 term. In this case it is unnecessary since the module to be used has already been supplied by the programmer.

Send feedback on this subject.