michaelrocks
return sets.firstOrNull()?.let { sets.subList(1, sets.size).fold(HashSet(it)) { intersection, set -> intersection.apply { retainAll(set) } } } ?: emptySet()