type Bar‹T› = T extends { a: (x: infer U) => void, b: (x: infer U) => void } ? U : never;
type T20 = Bar‹{ a: (x: string) => void, b: (x: string) =› void }›;  // string
type T21 = Bar‹{ a: (x: string) => void, b: (x: number) =› void }›;  // string & number