import type { Eq } from "@principia/prelude/Eq"; import { fromEquals } from "@principia/prelude/Eq"; import { isSubrecord } from "./guards"; import type { ReadonlyRecord } from "./model"; /* * ------------------------------------------- * Eq Record * ------------------------------------------- */ export const getEq: { (E: Eq): Eq>; (E: Eq): Eq>; } = (E: Eq): Eq> => { const isSubrecordE = isSubrecord(E); return fromEquals((x, y) => isSubrecordE(x)(y) && isSubrecordE(y)(x)); };