class Combinations {

    public Combinations resize(List<Integer> newSeqSizes) {
        Preconditions.checkArgument(newSeqSizes.size() == seqSizes.size());
        for (int i = 0; i < newSeqSizes.size(); i++) {
            Preconditions.checkArgument(newSeqSizes.get(i) >= seqSizes.get(i));
        }
        return new Combinations(this, newSeqSizes);
    }

    private  Combinations(int tupleSize);
    private  Combinations(Combinations previous, List<Integer> newSeqSizes);

}