/**
* @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