import type { Eq } from "@principia/prelude/Eq"; import type { Semigroup } from "@principia/prelude/Semigroup"; import { fromCombine } from "@principia/prelude/Semigroup"; import { intersection_ } from "./combinators"; /* * ------------------------------------------- * Semigroup Set * ------------------------------------------- */ export const getIntersectionSemigroup = (E: Eq): Semigroup> => { const intersectionE_ = intersection_(E); return fromCombine((x, y) => intersectionE_(x, y)); };