// instantiating a derived type can cause an infinitely expanding type reference to be generated // which could be used in an assignment check for constraint satisfaction interface AA> // now an error due to referencing type parameter in constraint { x: T } interface BB extends AA> { }