title: Overriding type from base class that conformed from associatedtype
body: <p>Lets say i have this class:</p>
  
  <pre><code>protocol GenericViewModel {
    associatedtype Model
    associatedtype ViewModel
  }
  
  class BaseVc: GenericViewModel {
  
  typealias Model = ModelA
  typealias ViewModel = ViewModelA
  var baseVm:ViewModel&lt;Model&gt;
  
  }
  </code></pre>
  
  <p>now i want to extend base vc with other types for the baseVm property</p>
  
  <pre><code>class AwesomeVc: BaseVc {
  
  typealias Model = ModelB
  typealias ViewModel = ViewModelB
  
  }
  </code></pre>
  
  <p>the expected result would be that when i type <code>viewModel</code> i should see the compiler recognize <code>ViewModelB</code>, in practice i see that there is no way to "<code>override</code>" the value specified in the base class.</p>
  
  <p>how can i achieve this behaviour? </p>