What does the `infer L` rest-element pattern produce here?type Last<T extends any[]> = T extends [...any[], infer L] ? L : never; type R = Last<[1, 2, 3]>;