From https://github.com/Microsoft/TypeScript/issues/12005#issuecomment-258406311 We can sometimes get into a state where we issue errors that appear to be nonsense: ```ts interface T { } declare const a: T; class Foo<T> { x: T; fn() { this.x = a; } } ```  When two types have the same spellings according to `typeToString`, we should issue a more specific error, e.g. > "Type `T` is not assignable to type `T`. Two different types with this name exist, but they are unrelated."