This section describes the annotations of predicates and how they are indicated in the reference pages for predicates of each given annotation. The annotations appear to the right of the title of the reference page.
user
. For a
hook, the mode and type annotations should be seen as guide-lines to
the user who wants to add his own hook; they describe how the
predicate is used by the system.
Meta-predicates and operators are recognizable by the implicit conventions described below.
assert(mod:a(1), Ref)
If no module prefix is supplied, it will implicitly be set to the calling module. If the module prefix is a variable, an instantiation error will be raised. If it is not an atom a type error will be raised. So in any meta-predicate reference page the following exceptions are implicit:
instantiation_error
type_error
:- initialization
+Goal (A) +Term1@>
+Term2 (B)
It is thus always possible to see if a name is an operator or not. The predicate can, of course, be written using the canonical representation, even when the name is an operator. Thus (A) and (B) can be written as (C) and (D), respectively:
:- initialization(
+Goal)
(C)@>
(+Term1, +Term2) (D)