export function pipe (
first: A | (() => A),
second: (source: A) => B
): B
export function pipe (
first: A | (() => A),
second: (source: A) => B,
third: (source: B) => C
): C
export function pipe (
first: A | (() => A),
second: (source: A) => B,
third: (source: B) => C,
fourth: (source: C) => D
): D
export function pipe (
first: A | (() => A),
second: (source: A) => B,
third: (source: B) => C,
fourth: (source: C) => D,
fifth: (source: D) => E
): E
export function pipe (
first: A | (() => A),
second: (source: A) => B,
third: (source: B) => C,
fourth: (source: C) => D,
fifth: (source: D) => E,
sixth: (source: E) => F
): F
export function pipe (
first: A | (() => A),
second: (source: A) => B,
third: (source: B) => C,
forth: (source: C) => D,
fifth: (source: D) => E,
sixth: (source: E) => F,
seventh: (source: F) => G
): G
export function pipe (
first: A | (() => A),
second: (source: A) => B,
third: (source: B) => C,
forth: (source: C) => D,
fifth: (source: D) => E,
sixth: (source: E) => F,
seventh: (source: F) => G,
eighth: (source: G) => H
): H
export function pipe (
first: A | (() => A),
second: (source: A) => B,
third: (source: B) => C,
forth: (source: C) => D,
fifth: (source: D) => E,
sixth: (source: E) => F,
seventh: (source: F) => G,
eighth: (source: G) => H,
ninth: (source: H) => I
): I
export function pipe (
first: A | (() => A),
second: (source: A) => B,
third: (source: B) => C,
forth: (source: C) => D,
fifth: (source: D) => E,
sixth: (source: E) => F,
seventh: (source: F) => G,
eighth: (source: G) => H,
ninth: (source: H) => I,
tenth: (source: I) => J
): I
export function pipe (first: any, ...rest: any[]): any
export default pipe