03192
Reverse
type ReverseImplements<T extends any[], U extends any[] = []> = T['length'] extends 0 ? U :
T extends [infer First, ...infer Rest] ? ReverseImplements<Rest, [First, ...U]> : never;
type Reverse<T extends any[]> = ReverseImplements<T>
type ReverseImplements<T extends any[], U extends any[] = []> = T['length'] extends 0 ? U :
T extends [infer First, ...infer Rest] ? ReverseImplements<Rest, [First, ...U]> : never;
type Reverse<T extends any[]> = ReverseImplements<T>