Since abstract values cannot be denoted, they must be `created' by calling the pseudo function New. The first parameter of this pseudo function must be the name of an abstract type variable. As a side-effect of calling New, the returned value is included in the abstract type and in any super types.