```ts function f<T>(p: T) { let g: <T>(x: T) => typeof p = null as any; return g; } ``` Calling `f(10)` will produce something of type `<T>(x: T) => number`, however, the declaration emit is the following: ```ts declare function f<T>(p: T): <T>(x: T) => T; ``` But calling that `f` produces the type `<T>(x: T) => T`.