import type { Args, GenericFn, GenericResolver } from "../HKT"; import type { Dec } from "../Num/Int/Dec"; import type { Nat } from "../Num/Nat"; /** * Repeat `T` for `N` times. * * Sig: `(n: N, x: T) => readonly [T, T, ...]` */ export type Repeat = N extends 0 ? readonly [] : readonly [T, ...Repeat, T>]; interface Resolver extends GenericResolver<[Nat, unknown], readonly unknown[]> { on1_: ([n]: Args) => [[unknown], Repeat]; on_1: ([, x]: Args) => [[Nat], readonly (typeof x)[]]; on11: ([n, x]: Args) => [[], Repeat]; } /** * [Fn] Repeat `T` for `N` times. * * Sig: `(n: N, x: T) => readonly [T, T, ...]` */ export interface RepeatFn extends GenericFn { def: ([n, x]: Args) => Repeat; }