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