We have tried to keep the predicate descriptions clear and concise. First the predicate name is printed in bold face, followed by the arguments in italics. Arguments are preceded by a `+', `-' or `?' sign. `+' indicates the argument is input to the predicate, `-' denotes output and `?' denotes `either input or output'.20These marks do not suggest instantiation (e.g. var(+Var)). Constructs like `op/3' refer to the predicate `op' with arity `3'. Finally, arguments may have the `:' specifier, which implies the argument is module-sensitive. Normally the argument is a callable term referring to a predicate in a specific module. See section 5 for more information on module-handing.