Current implementation:
declare function without<T>(array: readonly T[], ...values: T[]): T[];
Should be something like
declare function without<T, V extends T>(array: readonly T[], ...values: V[]): Exclude<T, V>[];
The current type return does us absolutely no good.