title: Passing a generic function in as a callback in Typescript
body: <p>I'm trying to preserve the type information of arguments to a callback, where the callback is a generic:</p>
  
  <pre><code>function Foo&lt;Template&gt;(argument: Template) {
    // Do something with argument
  }
  
  function Bar(callback: Function) {
    callback('something')
  }
  
  let x = Bar( Foo&lt;String&gt; )
  </code></pre>
  
  <p>This does not look like valid typescript syntax. Any way to do this?</p>