/** * @since 2.0.0 */ import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor.js'; import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT.js'; /** * @category model * @since 2.0.0 */ export interface Extend extends Functor { readonly extend: (wa: HKT, f: (wa: HKT) => B) => HKT; } /** * @category model * @since 2.0.0 */ export interface Extend1 extends Functor1 { readonly extend: (wa: Kind, f: (wa: Kind) => B) => Kind; } /** * @category model * @since 2.0.0 */ export interface Extend2 extends Functor2 { readonly extend: (wa: Kind2, f: (wa: Kind2) => B) => Kind2; } /** * @category model * @since 2.0.0 */ export interface Extend2C extends Functor2C { readonly extend: (wa: Kind2, f: (wa: Kind2) => B) => Kind2; } /** * @category model * @since 2.0.0 */ export interface Extend3 extends Functor3 { readonly extend: (wa: Kind3, f: (wa: Kind3) => B) => Kind3; } /** * @category model * @since 2.2.0 */ export interface Extend3C extends Functor3C { readonly extend: (wa: Kind3, f: (wa: Kind3) => B) => Kind3; } /** * @category model * @since 2.0.0 */ export interface Extend4 extends Functor4 { readonly extend: (wa: Kind4, f: (wa: Kind4) => B) => Kind4; }