The Mirror for a product type.
Mirror
The names of the product elements.
The name of the type.
The mirrored *-type.
Creates a new instance of type T with elements taken from product p.
T
p