Using these recursive tuple types for addition, what does `Sum` evaluate to?
type Build<N extends number, Acc extends unknown[] = []> =
Acc["length"] extends N ? Acc : Build<N, [...Acc, unknown]>;
type Add<A extends number, B extends number> =
[...Build<A>, ...Build<B>]["length"];
type Sum = Add<3, 4>;