Glossary Of Terms Used In Mercury

assertion
A particular form of promise which claims to the compiler that the specified goal will always hold. If useful, the compiler may use this information to perform optimisations.
class context
The typeclass constraints on a predicate or function.
codeinfo
Originally, the data structure that holds the state of the LLDS code generator. Now, the data structure that holds the static part of the state of the LLDS code generator.
HLDS
The "High Level Data Structure".
inst
Instantiatedness. An inst holds five different sorts of information.
liveness
This term is used to mean two quite different things!
LLDS
The "Low Level Data Structure".
mode
This has two meanings:
module_info
Another name for the HLDS.
NYI
Not Yet Implemented.
pred_info
The structure in the HLDS which contains information about a predicate.
proc (procedure)
A particular mode of a predicate.
proc_info
The structure in the HLDS which contains information about a procedure.
promise
A declaration that specifies a law that holds for the predicates/functions in the declaration. Thus, examples of promises are assertions and promise ex declarations. More generally, the term promise is often used for a declaration where extra information is given to the compiler which it cannot check itself, for example in purity pragmas.
promise ex
A shorthand for promise_exclusive, promise_exhaustive, and promise_exclusive_exhaustive declarations. These declarations are used to tell the compiler the determinism properties of a disjunction.
RTTI
The "RunTime Type Information". See rtti.m. A copy of a paper given on this topic is available here in zipped Postscript format.
super-homogenous form (SHF)
A simplified, flattened form of goals, where each unification is split into its component pieces; in particular, the arguments of each predicate call and functor must be distinct variables.
switch
A disjunction which does a case analysis on the toplevel functor of the term bound to some variable.