Defining a type

A new type is defined by creating an type factory. This is a structure containing all the information needed to create an instance of the type.