Term Table


Term table

Term table contains term declarations. A term is a simple recursive data type that is suitable for implementing unification. Also, terms can model any other data structure, in particular they are suitable for representing types in a programming language.

A term is defined by its symbol and its features, which can be a child term, a list of children terms or any Java object1.

(example of a term declaration)

An open term declaration can be extended by another term, which helps implement a structural subtyping on terms. A term extending another term can add new features.

(example of open term declaration)

A instance of classifier() can always be matched with a pattern parameterized(), because the former structurally extends the latter.

A term table can extend another term table, in order to provide extensions to existing terms.

(example of a term table extension)

  1. Java object conforming to equals/hashCode contract