type Prepend<Tuple extends any[], Addend> = ((_: Addend, ..._1: Tuple) => any) extends ((
..._: infer Result
) => any) ? Result : never;