<!-- BUGS: Please use this template. --> <!-- QUESTIONS: This is not a general support forum! Ask Qs at http://stackoverflow.com/questions/tagged/typescript --> <!-- SUGGESTIONS: See https://github.com/Microsoft/TypeScript-wiki/blob/master/Writing-Good-Design-Proposals.md --> **TypeScript Version:** 2.2.0 **Code** ```ts interface I { attr: string } type M = <T extends I>() => T const v: M = () => ({}) v().attr ``` **Expected behavior:** `Type '() => {}' is not assignable to type 'M'. Type '{}' is not assignable to type 'I'.` **Actual behavior:** The compilation is successful.