// One-dimensional array subtyping with equal types
class OneDimEqualTypes<region R> {
// Default RPL
int[] defaultRPL1;
int[] defaultRPL2 = defaultRPL1;
// Root bound to RPL
int[]<Root> rootRPL1;
int[]<Root> rootRPL2 = rootRPL1;
// Index-parameterized RPL
int[]<[i]>#i indexParamRPL1;
int[]<[i]>#i indexParamRPL2 = indexParamRPL1;
// Index-parameterized type
OneDimEqualTypes<[i]>[]#i indexParamType1;
OneDimEqualTypes<[i]>[]#i indexParamType2 = indexParamType1;
// Index-parameterized both
OneDimEqualTypes<[i]>[]<[i]>#i indexParamBoth1;
OneDimEqualTypes<[i]>[]<[i]>#i indexParamBoth2 = indexParamBoth1;
}