// ets_tracing: off
import * as Equal from "@effect-ts/system/Equal"
import type { EqualURI } from "../Modules/index.js"
import type { URI } from "../Prelude/index.js"
import * as P from "../Prelude/index.js"
/**
* The `AssociativeBoth` instance for `Equal`.
*/
export const AssociativeBoth = P.instance
]>>({
both: Equal.both
})
/**
* The `AssociativeEither` instance for `Equal`.
*/
export const AssociativeEither = P.instance]>>({
orElseEither: Equal.orElseEither
})
/**
* The `Contravariant` instance for `Equal`.
*/
export const Contravariant = P.instance]>>({
contramap: Equal.contramap
})
/**
* The `Any` instance for `Equal`.
*/
export const Any = P.instance]>>({
any: () => Equal.any
})
/**
* The `IdentityBoth` instance for `Equal`.
*/
export const IdentityBoth = P.instance]>>({
...Any,
...AssociativeBoth
})
/**
* The `None` instance for `Equal`.
*/
export const None = P.instance]>>({
never: () => Equal.never
})
/**
* The `IdentityEither` instance for `Equal`.
*/
export const IdentityEither = P.instance]>>({
...None,
...AssociativeEither
})