title: Error: Cannot convert value of type 'B' to expected argument type 'A<Any>' where B is a child of A
body: <p>I get the following error when calling a function <code>reloadTableView(dataSource: matchedSchoolProgramDataSource)</code></p>
  
  <pre><code> Cannot convert value of type 'MatchedSchoolProgramDataSource'
   to expected argument type 'DataSource&lt;Any&gt;'
  </code></pre>
  
  <p>Where DataSource is a generic <code>class DataSource&lt;T&gt;</code> and <code>MatchedSchoolProgramDataSource: DataSource&lt;Int&gt;</code> and reloadTableview is function in a protocol.</p>
  
  <pre><code>protocol TableViewResponseDelegate{
  
      func reloadTableView(dataSource: DataSource&lt;Any&gt;)
  } 
  </code></pre>
  
  <p>The reason for doing this: I have multiple table view controllers whose cells are filled by response from different network calls. I want to use <strong>one</strong> delegate that reloads tableview when it receives a response from the network. Datasource is a generic parent class of all data sources of tableview controllers. </p>