**TypeScript Version:** nightly **Code** ```ts type HTML = { [K in 'div']: Block<HTML> } type Block<P> = <T>(func: HTML) => {} declare var h: HTML h.div(h) ``` **Expected behavior:** Compile **Actual behavior:** Maximum call stack size exceeded at `inferFromTypes`