// prettier-ignore export type Apply = { (list: ArrayLike, f: () => A): A (list: [A], f: (a: A) => B): B (list: [A, B], f: (a: A, b: B) => C): C (list: [A, B, C], f: (a: A, b: B, c: C) => D): D (list: [A, B, C, D], f: (a: A, b: B, c: C, d: D) => E): E (list: [A, B, C, D, E], f: (a: A, b: B, c: C, d: D, e: E) => F): F (list: [A]): (f: (a: A) => B) => B (list: [A]): (f: (a: A) => B) => B (list: [A, B]): (f: (a: A, b: B) => C) => C (list: [A, B]): (f: (a: A, b: B) => C) => C (list: [A, B, C]): (f: (a: A, b: B, c: C) => D) => D (list: [A, B, C]): (f: (a: A, b: B, c: C) => D) => D (list: [A, B, C, D]): (f: (a: A, b: B, c: C, d: D) => E) => E (list: [A, B, C, D]): (f: (a: A, b: B, c: C, d: D) => E) => E (list: [A, B, C, D, E]): (f: (a: A, b: B, c: C, d: D, e: E) => F) => F (list: ArrayLike): (f: () => A) => A (list: ArrayLike): (f: (...args: Array) => A) => A (list: ArrayLike, f: (...args: Array) => A): A (list: ArrayLike): (f: (...args: Array) => A) => A }