// ets_tracing: off import type { CovariantComposition } from "../Covariant/index.js" import * as HKT from "../HKT/index.js" export interface Contravariant extends HKT.Base { readonly _Contravariant: "Contravariant" readonly contramap: ( f: (a: B) => A ) => ( fa: HKT.Kind ) => HKT.Kind } export function getContravariantComposition< F extends HKT.URIS, G extends HKT.URIS, CF = HKT.Auto, CG = HKT.Auto >(F: Contravariant, G: Contravariant): CovariantComposition export function getContravariantComposition( F: Contravariant>, G: Contravariant> ) { return HKT.instance, HKT.UHKT>>({ map: (f) => F.contramap(G.contramap(f)) }) }