Next: , Up: Solver types   [Contents]


17.1 The ‘any’ inst

Variables with solver types can have one of three possible insts: free, ground or any. A variable with a solver type with inst any may not (yet) be semantically ground, in the following sense: if a variable is semantically ground, then the set of values it unifies with form an equivalence class; if a variable is non-ground, then the set of values it unifies with do not form an equivalence class.

More formally, X is ground if for values Y and Z that unify with X, it is the case that Y and Z also unify with each other. X is non-ground if there are values Y and Z that unify with X, but which do not unify with each other.

A non-solver type value will have inst any if it is constructed using one or more inst any values.

The builtin modes ia and oa are equivalent to in(any) and out(any) respectively.