The fact that a predicate needs module name expansion is declared in a meta-predicate declaration:
     :- meta_predicate MetaPredSpec, ..., MetaPredSpec.
     
where each MetaPredSpec is a mode spec. E.g.
     :- meta_predicate p(:, +).
     
which means that the first argument of p/2 shall be module name
expanded.  The arguments in the mode spec are interpreted as:
     
:
     +, - or ?A number of built-in predicates have predefined meta-predicate
declarations, as indicated by the mode specs in this manual,
e.g. call(:Term).