combine = (a, b) => {
	if (b.size === 0) return a;
	if (a.size === 0) return b;
	const set = new Set(a);
	for (const item of b) set.add(item);
	return set;
}
@template T
@param {Set<T>} a first
@param {Set<T>} b second
@returns {Set<T>} combined set, may be identical to a or b