Next: , Up: Solver types   [Contents]


16.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 built-in modes ia and oa are equivalent to in(any) and out(any) respectively.