sclass TypedArrayList extends RandomAccessAbstractList { new L l; Class type; *() {} *(Class *type) {} public bool add(A a) { assertIsInstance(type, a); ret l.add(a); } public int size() { ret l.size(); } public A get(int i) { ret l.get(i); } [add more delegates here] }