
HLDS: The "High Level Data Structure".  See hlds.m.

moduleinfo: Another name for the HLDS.

LLDS: The "Low Level Data Structure".  See llds.m.

inst: instantiatedness.  An inst holds three different sorts of
      information.  It indicates whether a variable is free, partially
      bound, or ground.  If a variable is bound, it may indicate
      which functor(s) the variable can be bound to.  Also,
      an inst records whether a value is unique, or whether
      it may be aliased.

liveness: this term is used to mean two quite different things!
	(1) There's a notion of liveness used in mode analysis:
	a variable is live if either it or an alias might be
	used later on in the computation.
	(2) There's a different notion of liveness used for code generation:
	a variable becomes live (is "born") when the register or stack
	slot holding the variable first acquires a value, and dies when
	that value will definitely not be needed again within this procedure.
	This notion is low-level because it could depend on the low-level
	representation details (in particular, `no_tag' representations
	ought to affect liveness).

mode: this has two meanings:
	(1) a mapping from one instantiatedness to another
		(the mode of a single variable)
	(2) a mapping from an initial instantiatedness of a predicate's
		arguments to their final instantiatedness
		(the mode of a predicate)
	
proc (procedure): a particular mode of a predicate.

procinfo: the structure in HLDS which contains
	information about a procedure.

predinfo: the structure in HLDS which contains information about
	a predicate.

codeinfo: a structure used by codegen.m

switch: a disjunction which does a case analysis on the toplevel
	functor of some variable.

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.

