/** * @since 2.0.0 */ import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' /** * @category model * @since 2.0.0 */ export interface Invariant { readonly URI: F readonly imap: (fa: HKT, f: (a: A) => B, g: (b: B) => A) => HKT } /** * @category model * @since 2.0.0 */ export interface Invariant1 { readonly URI: F readonly imap: (fa: Kind, f: (a: A) => B, g: (b: B) => A) => Kind } /** * @category model * @since 2.0.0 */ export interface Invariant2 { readonly URI: F readonly imap: (fa: Kind2, f: (a: A) => B, g: (b: B) => A) => Kind2 } /** * @category model * @since 2.0.0 */ export interface Invariant2C { readonly URI: F readonly _E: E readonly imap: (fa: Kind2, f: (a: A) => B, g: (b: B) => A) => Kind2 } /** * @category model * @since 2.0.0 */ export interface Invariant3 { readonly URI: F readonly imap: (fa: Kind3, f: (a: A) => B, g: (b: B) => A) => Kind3 } /** * @category model * @since 2.4.2 */ export interface Invariant3C { readonly URI: F readonly _E: E readonly imap: (fa: Kind3, f: (a: A) => B, g: (b: B) => A) => Kind3 } /** * @category model * @since 2.4.2 */ export interface Invariant4 { readonly URI: F readonly imap: (fa: Kind4, f: (a: A) => B, g: (b: B) => A) => Kind4 }