00016
Pop
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 Pop<T extends any[]> = Reverse<Reverse<T> extends [infer First, ...infer Rest] ? Rest : T>