import type * as P from "@principia/prelude"; import * as HKT from "@principia/prelude/HKT"; import { unsafeCoerce } from "../Function"; import type { Const, URI, V } from "./model"; /* * ------------------------------------------- * Contravariant Const * ------------------------------------------- */ export const contramap_ = (fa: Const, _: (b: B) => A): Const => unsafeCoerce(fa); export const contramap = (_: (b: B) => A) => (fa: Const): Const => unsafeCoerce(fa); /** * @category Contravariant * @since 1.0.0 */ export const Contravariant: P.Contravariant<[URI], V> = HKT.instance({ contramap, contramap_ });