// Attempt to do unsound array assignment with class element type class C<region R> { // This is unsound ... C<*>[] A = new C<R>[10]; // ... because then we could do this: // A[0] = new C<<Root>>(); // // Note that Java generics allow this: // // C<?>[] A = new C<T>[10]; // // but they can catch this // // A[0] = new C<Object>(); // // as a class cast exception at runtime, whereas // our region info is completely erased. }