code: static int compareLexical(BitStore a, BitStore b) {
  		int aSize = a.size();
  		int bSize = b.size();
  		int diff = a.size() - b.size();
  		ListIterator<Integer> as = a.ones().positions(aSize);
  		ListIterator<Integer> bs = b.ones().positions(bSize);
  		while (true) {
  			boolean ap = as.hasPrevious();
  			boolean bp = bs.hasPrevious();
  			if (ap && bp) {
  				int ai = as.previous();
  				int bi = bs.previous() + diff;
  				if (ai == bi) continue;
  				return ai > bi ? 1 : -1;
  			} else {
  				return bp ? -1 : 1;
  			}
  		}
  
  	}
docs: expects a strictly longer than b