``` typescript function foo<T>(x: T) { var y: { y1: T; y2: typeof y }; return y; } function bar<T>(x: T) { var y: { y1: T; y2: typeof y; } return y; } var a = foo<string>("hello"); var b = bar<number>(5); a = b; ``` 