For each virtual domain we define a virtual data type as well. This is necessary as soon as we need to allocate new objects from a virtual domain. Conversion (i.e. in this case: renaming) from a virtual type to an already existing type is done by the definition unit.
Due to the fact that all domains are currently implemented as SACLIB lists, all data types in the present stage coincide with Word . However, we introduce a new data type for each domain, since lists representing elements of different domains have different structures. This semantic difference is reflected in the choice of different names for semantically different types of lists.
For instance, we interpret a list consisting of only small integers as an exponent list, whereas we interpret a list consisting of an arbitrary integer and a list of only small integers as a monomial with integer coefficient, whose power product is represented as exponent list. Although both types are lists we name a list of the first type EL and a list of the second type Mon instead of just defining both as Word.
Thereby, we can increase