void IndexSet::insert(const IndexSet& s) { if (this == &s) return; if (s.card() == 0) return; if (card() == 0) { *this = s; return; } for (long i = s.last(); i >= s.first(); i = s.prev(i)) insert(i); // NOTE: traversal done from high to low so as to trigger at // at most one resize }