title: Issue with generic conversion method using RxSwift
body: <p>I have this result datatype called  which wraps a type and a progress</p>
  
  <pre><code>public enum &lt;T&gt; {
      case Success(T)
      case Progress(CGFloat)
  }
  
  class func rx_request(router: Router) -&gt; Observable&lt;&lt;AnyObject&gt;&gt;
  </code></pre>
  
  <p>This <code>AnyObject</code> needs to be transformed into a <code>Mappable</code> structure (ObjectMapper), so because I have several of these Mappable structs, I wanted to achieve something like this, a generic map that I can use:</p>
  
  <pre><code>class func rx_convert&lt;T : Mappable&gt;(value: &lt;AnyObject&gt;) -&gt; Observable&lt;&lt;T&gt;&gt; {
  
          return Observable.create { observer in
  
              switch value {
              case .Success(let object):
                  guard let convertedObject = Mapper&lt;T&gt;().map(object) else {
                      observer.onError(NetworkError.IncorrectDataReturned)
                      return NopDisposable.instance
                  }
  
                  observer.on(.Next(&lt;T&gt;.Success(convertedObject)))
                  observer.on(.Completed)
  
              case .Progress(let progress):
                  observer.on(.Next(&lt;T&gt;.Progress(progress)))
                  break
              }
  
              return NopDisposable.instance
          }
  }
  </code></pre>
  
  <p>It seems the above definition is wrong because this cannot be compiled: <code>Cannot explicitly specialize a generic function</code></p>
  
  <pre><code>.flatMapLatest({ _ in
      .rx_request(Router.Pipeline)
  })
  .flatMapLatest({ result -&gt; Observable&lt;&lt;ResponsePipeline&gt;&gt; in
      .rx_convert&lt;ResponsePipeline&gt;(result)
      // Cannot explicitly specialize a generic function
  })
  </code></pre>
  
  <p>What am I doing wrong here?</p>