title: nested generics in swift 3
body: <p>is it possible to do following in Swift 3 with generics ?</p>
  
  <pre><code>class BaseModel {} 
  class Human : BaseModel {
  var name = ""
  }
  
  class BaseService&lt;T: BaseVM&lt;BaseModel&gt;&gt; {
     //init viewmodel with generic model
  }
  
  class BaseVM&lt;T: BaseModel&gt; {}
  
  class HumanVM: BaseVM&lt;Human&gt; {
  var name = ""
  init(model : Human) {
      super.init()
      name = model.name
    }
  }
  
  class HumanService: BaseService&lt;HumanVM&gt; {}
  </code></pre>
  
  <p>what I am trying to do is initializing viewModel with generic model in baseService.</p>