static ItIt> allSubsetsOfSize_iterator(int m, L objects) { int n = l(objects); 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(objects.get(i)); } ret out; }); }