export interface Eq { readonly equals_: (x: A, y: A) => boolean readonly equals: (y: A) => (x: A) => boolean } export function Eq(equals: (x: A, y: A) => boolean): Eq { const equals_ = (x: A, y: A) => x === y || equals(x, y) return { equals_, equals: (y) => (x) => equals_(x, y) } } export { EqURI } from './Modules'