A proxy for Scala 2 singletons, which do not inherit Singleton directly
Singleton
The names of the product elements
The mirrored *-type
The name of the type
Create a new instance of type T with elements taken from product p.
T
p