Data types and extensible languages

Definition mechanisms for extensible programming languages, in principle, allow variation of the language definition in various directions: data types, operations, control structure and syntax. We will focus our attention here on the definitional capabilities that one might expect from a data type extension mechanism. First, we will define informally what the nature of a data type is, what kind of information it contains. Then, we will discuss the most classical approach for data type definition in extensible languages. Finally, we will sketch a model for a mechanism which would permit to introduce really new data types in a language.