title: Interfaces with construct signatures not type checking
body: <p>I've been playing a bit with interfaces with construct signatures in TypeScript, and I became a bit confused when the following failed to type check:</p>
  
  <pre><code>class Foo {
      constructor () {
      }
  }
  
  interface Bar {
      new(): Bar;
  }
  
  function Baz(C : Bar) {
      return new C()
  }
  
  var o = Baz(Foo);
  </code></pre>
  
  <p>The type error is:</p>
  
  <blockquote>
    <p>Supplied parameters do not match any signature of call target:
    Construct signatures of types 'new() => Foo' and 'Bar' are
    incompatible: Type 'Bar' requires a construct signature, but Type
    'Foo' lacks one (C: Bar) => Bar</p>
  </blockquote>
  
  <p>The type of Foo's constructor is () => Foo, and that is what I thought that Bar said. Am I missing something here?</p>