The following example is valid in the current compiler but not in the typescript based compiler: ```ts interface A { type: "a"; } interface B { type: "b"; } interface Types { a: A; b: B; } export function exhaustiveSwitch<T extends keyof Types>(type: T): boolean { switch (type) { case "a": return true; case "b": return true; } } ``` resulting in the error: > src/exhaustive-generic-switch.ts:14:67 - error TS2366: Function lacks ending return statement and return type does not include 'undefined'. [playground](https://www.typescriptlang.org/play/?#code/JYOwLgpgTgZghgYwgAgILIN4ChnLATwAcIAuZAIjnIG4sBfLLUSWRFAIUxzyNIoCMa9Rs2jwkyACq8Azl1xwyqWrn5l2tBlggAPQgHsoYZDACuIBGGD6QyXQAs4pmVYBuEAMoB3YGAT2AHkk7HUgQABM5AGsIfH0YKVkAPgAKAmIySQBKMn59fQAbCDhbbFwZHz97ZDTeLPlcZAQ4GRRKchJuRuQoCDBTKFswKFMIFUbm1oEOrsbe-sG8EbHuBjogA)