Default values. New values are ignored on collision and the existing value is retained.
The names of the product elements
The name of the type
The mirrored *-type
Create a new instance of type T with elements taken from product p.
T
p