Which pattern most directly causes the type checker to blow up into exponential or super-linear instantiation work, and why?type Deep<T> = T extends [infer H, ...infer R] ? { head: H; rest: Deep<R>; alt: Deep<R> } : {};