/** * @name Arity0 * @type */ export type Arity0 = () => A /** * @name Arity1 * @type */ export type Arity1 = (value: A) => B /** * @name Arity2 * @type */ export type Arity2 = (a: A, b: B) => C /** * @name Arity3 * @type */ export type Arity3 = (a: A, b: B, c: C) => D /** * @name Arity4 * @type */ export type Arity4 = (a: A, b: B, c: C, d: D) => E /** * @name Arity5 * @type */ export type Arity5 = (a: A, b: B, c: C, d: D, e: E) => F /** * @name Arity6 * @type */ export type Arity6 = (a: A, b: B, c: C, d: D, e: E, f: F) => G /** * @name Arity7 * @type */ export type Arity7 = (a: A, b: B, c: C, d: D, e: E, f: F, g: G) => H /** * @name Arity8 * @type */ export type Arity8 = ( a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H ) => I /** * @name Arity9 * @type */ export type Arity9 = ( a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I ) => J /** * @name Arity10 * @type */ export type Arity10 = ( a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J ) => K /** * @name ArityN * @type */ export type ArityN = (...args: Array) => R /** * @name Arity1N * @type */ export type Arity1N = (a: A, ...args: Array) => R /** * @name Arity2N * @type */ export type Arity2N = (a: A, b: B, ...args: Array) => R /** * @name Arity3N * @type */ export type Arity3N = (a: A, b: B, c: C, ...args: Array) => R /** * @name Arity4N * @type */ export type Arity4N = (a: A, b: B, c: C, d: D, ...args: Array) => R /** * @name Arity5N * @type */ export type Arity5N = (a: A, b: B, c: C, d: D, e: E, ...args: Array) => R /** * @name Arity6N * @type */ export type Arity6N = ( a: A, b: B, c: C, d: D, e: E, f: F, ...args: Array ) => R /** * @name Arity7N * @type */ export type Arity7N = ( a: A, b: B, c: C, d: D, e: E, f: F, g: G, ...args: Array ) => R /** * @name Arity8N * @type */ export type Arity8N = ( a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, ...args: Array ) => R /** * @name Arity9N * @type */ export type Arity9N = ( a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, ...args: Array ) => R /** * @name Arity10N * @type */ export type Arity10N = ( a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, ...args: Array ) => R /** * @name Arity1Bound * @type */ export type Arity1Bound = (this: that, a: A) => B /** * @name Arity2Bound * @type */ export type Arity2Bound = (this: that, a: A, b: B) => C /** * @name Arity3Bound * @type */ export type Arity3Bound = (this: that, a: A, b: B, c: C) => D /** * @name Arity4Bound * @type */ export type Arity4Bound = (this: that, a: A, b: B, c: C, d: D) => E /** * @name Arity5Bound * @type */ export type Arity5Bound = (this: that, a: A, b: B, c: C, d: D, e: E) => F /** * @name Curry2 * @type */ export type Curry2 = { (a: A): Arity1 (a: A, b: B): C } /** * @name Curry3 * @type */ export type Curry3 = { (a: A): Curry2 (a: A, b: B): Arity1 (a: A, b: B, c: C): D } /** * @name Curry4 * @type */ export type Curry4 = { (a: A): Curry3 (a: A, b: B): Curry2 (a: A, b: B, c: C): Arity1 (a: A, b: B, c: C, d: D): E } /** * @name Curry5 * @type */ export type Curry5 = { (a: A): Curry4 (a: A, b: B): Curry3 (a: A, b: B, c: C): Curry2 (a: A, b: B, c: C, d: D): Arity1 (a: A, b: B, c: C, d: D, e: E): F } /** * @name Curry6 * @type */ export type Curry6 = { (a: A): Curry5 (a: A, b: B): Curry4 (a: A, b: B, c: C): Curry3 (a: A, b: B, c: C, d: D): Curry2 (a: A, b: B, c: C, d: D, e: E): Arity1 (a: A, b: B, c: C, d: D, e: E, f: F): G } /** * @name Curry7 * @type */ export type Curry7 = { (a: A): Curry6 (a: A, b: B): Curry5 (a: A, b: B, c: C): Curry4 (a: A, b: B, c: C, d: D): Curry3 (a: A, b: B, c: C, d: D, e: E): Curry2 (a: A, b: B, c: C, d: D, e: E, f: F): Arity1 (a: A, b: B, c: C, d: D, e: E, f: F, g: G): H } /** * @name Curry8 * @type */ export type Curry8 = { (a: A): Curry7 (a: A, b: B): Curry6 (a: A, b: B, c: C): Curry5 (a: A, b: B, c: C, d: D): Curry4 (a: A, b: B, c: C, d: D, e: E): Curry3 (a: A, b: B, c: C, d: D, e: E, f: F): Curry2 (a: A, b: B, c: C, d: D, e: E, f: F, g: G): Arity1 (a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H): I } /** * @name Curry9 * @type */ export type Curry9 = { (a: A): Curry8 (a: A, b: B): Curry7 (a: A, b: B, c: C): Curry6 (a: A, b: B, c: C, d: D): Curry5 (a: A, b: B, c: C, d: D, e: E): Curry4 (a: A, b: B, c: C, d: D, e: E, f: F): Curry3 (a: A, b: B, c: C, d: D, e: E, f: F, g: G): Curry2 (a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H): Arity1 (a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I): J } /** * @name Curry10 * @type */ export type Curry10 = { (a: A): Curry9 (a: A, b: B): Curry8 (a: A, b: B, c: C): Curry7 (a: A, b: B, c: C, d: D): Curry6 (a: A, b: B, c: C, d: D, e: E): Curry5 (a: A, b: B, c: C, d: D, e: E, f: F): Curry4 (a: A, b: B, c: C, d: D, e: E, f: F, g: G): Curry3 (a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H): Curry2 (a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I): Arity1 (a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J): K } /** * @name Predicate * @type */ export type Predicate = (value: A) => boolean /** * @name Predicate2 * @type */ export type Predicate2 = (a: A, b: A) => boolean /** * @name ComparisonNumber * @type */ export type ComparisonNumbers = -1 | 0 | 1 /** * @name Comparator * @type */ export type Comparator = (a: A, b: A) => ComparisonNumbers