title: IntegerType: Cannot invoke 'init' with an argument of type 'T'
body: <p>I have this function that returns an integer within bounds:</p>
  
  <pre><code>func randomNumber&lt;T: IntegerType&gt;(min: T, max: T) -&gt; T {
      let n = max - min + 1
      let u = UInt32(n)            // Error: Cannot invoke 'init' with an argument of type 'T'
      let r = arc4random_uniform(u) 
      return r + min
  }
  </code></pre>
  
  <p>I dont understand why this is not working because <code>UInt32</code> top most protocol is <code>UnsignedIntegerType</code>, which conforms to <code>IntegerType</code>.</p>
  
  <p>I have to make <code>n</code> into <code>UInt32</code> because <code>arc4random_uniform()</code> takes a <code>UInt32</code> as parameter</p>
  
  <p>Why wont this work?</p>