combinations :: CombinationIterator :: next_free
fun next_free(rank: Int, start: Int): Int do loop for i in [0..rank[ do if indices[i] == start then start += 1 continue label end end break label end label return start end