/** * @since 2.0.0 */ import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor4, Functor3C } from './Functor' import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3, URIS4, Kind4 } from './HKT' /** * @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 }