Used to obtain values of type Type.
It is sometimes inconvenient to create an expression whose value is an
instance of type Type representing an instantiated generic type (e.g.,
List<int> is not an expression
f(List<int>) is not a method call).
This class provides a way to express such values (the example invocation
can be written as