1class A { a } 2class B extends A { b } 3class C<T> extends Array<T> { c } 4declare var ara: A[]; 5declare var arb: B[]; 6declare var cra: C<A>; 7declare var crb: C<B>; 8declare var rra: ReadonlyArray<A>; 9declare var rrb: ReadonlyArray<B>; 10rra = ara; 11rrb = arb; // OK, Array<B> is assignable to ReadonlyArray<A> 12rra = arb; 13rrb = ara; // error: 'A' is not assignable to 'B' 14 15rra = cra; 16rra = crb; // OK, C<B> is assignable to ReadonlyArray<A> 17rrb = crb; 18rrb = cra; // error: 'A' is not assignable to 'B' 19