@rauschma@fosstodon.org Your new partial-application gist reminded me that `Drop` does not even need recursion: type CreateTuple = []> = Acc['length'] extends Len ? Acc : CreateTuple ; type Drop, Num extends number> = Tuple extends [...CreateTuple, ...infer Rest] ? Rest : never ; let a: Drop<["a", "b", "c", "d", "e"], 2>;