sclass AutoGrowingList extends RandomAccessAbstractList {
new L list;
IF1 createEmptyElement; // optional, takes index and produces element
public int size() { ret list.size(); }
public A get(int i) { ret list.get(i); }
public A set(int i, A a) {
while (i > size())
list.add(createEmptyElement?.get(i));
if (i == size())
add(a);
else
list.set(i, a);
};
public bool add(A a) { ret list.add(a); }
}