The change is the addition of "*These restrictions do not apply to ocurrances of types
within declarations of static members.*" sentence at the beginning of the section.
### Variance safety
The occurrence of variance annotations in the type parameter list of a type restricts the places where types can occur within the type declaration.
*These restrictions do not apply to ocurrances of types within declarations of static members.*
A type `T` is ***output-unsafe*** if one of the following holds:
*`T` is a contravariant type parameter
*`T` is an array type with an output-unsafe element type
*`T` is an interface or delegate type `S<A1,...,Ak>` constructed from a generic type `S<X1,...,Xk>` where for at least one `Ai` one of the following holds:
*`Xi` is covariant or invariant and `Ai` is output-unsafe.
*`Xi` is contravariant or invariant and `Ai` is input-safe.
A type `T` is ***input-unsafe*** if one of the following holds:
*`T` is a covariant type parameter
*`T` is an array type with an input-unsafe element type
*`T` is an interface or delegate type `S<A1,...,Ak>` constructed from a generic type `S<X1,...,Xk>` where for at least one `Ai` one of the following holds:
*`Xi` is covariant or invariant and `Ai` is input-unsafe.
*`Xi` is contravariant or invariant and `Ai` is output-unsafe.
Intuitively, an output-unsafe type is prohibited in an output position, and an input-unsafe type is prohibited in an input position.
A type is ***output-safe*** if it is not output-unsafe, and ***input-safe*** if it is not input-unsafe.
## Other Considerations
We also considered whether this could potentially interfere with some of the other
enhancements we hope to make regarding roles, type classes, and extensions. These should all be