import type { Args, GenericFn, GenericResolver } from ".."; /** * Append an element to a tuple. * * Sig: `(y: U, xs: TS) => [...TS, U]` */ export type Append = TS extends unknown[] ? [...TS, U] : readonly [...TS, U]; interface Resolver extends GenericResolver<[unknown, readonly unknown[]], readonly unknown[]> { on1_: ([y]: Args) => [[readonly unknown[]], readonly unknown[]]; on_1: ([, xs]: Args) => [ [unknown], typeof xs extends unknown[] ? [...typeof xs, unknown] : readonly [...typeof xs, unknown], ]; on11: ([y, xs]: Args) => [ [], typeof xs extends unknown[] ? [...typeof xs, typeof y] : readonly [...typeof xs, typeof y], ]; } /** * [Fn] Append an element to a tuple. * * Sig: `(y: U, xs: TS) => [...TS, U]` */ export default interface AppendFn extends GenericFn { def: ([y, xs]: Args) => Append; }