Consider the following:
type X = {foo: string}; type Y = {foo: number}; type Z = {foo: string, bar: number}; type W = {bar: string}; type Q = {baz: string}; type