static ItIt> allSubsetsOfSize_iterator(int m, Cl objects) { L list = asList(objects); int n = l(list); ret mapI(allSpreads(n-m, m+1), spread -> { L out = emptyList(m); int i = -1; for j to m: { i += spread.get(j)+1; out.add(list.get(i)); } ret out; }); }