Node:Meta Decl, Previous:Meta Exp, Up:Module Intro
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:
:
An integer
Anything else e.g. +
, -
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)
.