title: Swift generics Bool is not convertible to Bool
body: <p>I have written a protocol like:</p>
  
  <pre><code>public protocol Protocol1 {
      func execute&lt;T, R&gt;(req: T) -&gt; Promise&lt;R&gt;
  }
  </code></pre>
  
  <p>Implemented the protocol as Below:</p>
  
  <pre><code>struct Implemented1 : Protocol1 {
      func execute&lt;String, Bool&gt;(req : String) -&gt; Promise&lt;Bool&gt; {
          return Promise&lt;Bool&gt;() { fulfill, reject in
             fulfill(true)
          }
      }
  }
  </code></pre>
  
  <p>I am getting following error:</p>
  
  <p><strong>'Bool' is not convertible to 'Bool'</strong></p>
  
  <p>Please help me to understand what is the issue.</p>