title: TypeScript compiler doesn't complain with this generic constraint
body: <pre><code>class Stub
  {
  
  }
  
  interface IListener&lt;T&gt;
  {
      method( e : Event&lt;T&gt; ) : void;
  }
  
  class Event&lt;T&gt;
  {
      target : T;
  }
  
  class Listener implements IListener&lt;Stub&gt;
  {
      method( e : Event&lt;boolean&gt; ) : void
      {
  
      }
  }
  </code></pre>
  
  <p>Is there any reason why TS compiler doesn't complain ? 'boolean' violates the interface contract. Stub type is specified in the implementation.</p>