import {InternSet} from "internmap"; export default function intersection(values, ...others) { values = new InternSet(values); others = others.map(set); out: for (const value of values) { for (const other of others) { if (!other.has(value)) { values.delete(value); continue out; } } } return values; } function set(values) { return values instanceof InternSet ? values : new InternSet(values); }