title: WeakTypeOf from type parameter
body: <p>I have a simple code with function which gets weakTypeOf case class and returns its fields, predictably we get 2 items list</p>
  
  <pre><code>def getMembers[T: WeakTypeTag] = 
    weakTypeOf[T].members.filterNot(_.isMethod).toList
  
  final case class Person(name: String, age: Int) extends Models
  
  val fields = getMembers[Person]
  println(fields.length) // 2
  </code></pre>
  
  <p>It works fine</p>
  
  <p>But what if i want to get members from trait where i passed Person as type parameter when create a child object class? (WeakTypeTag i can not pass to trait during construction)</p>
  
  <pre><code>trait ModelManager[CCT] {
    def getMembers: List[String] = ???
  }
  
  case object PersonManager extends ModelManager[Person] 
  
  val fields = PersonManager.getMembers
  println(fields.length)
  </code></pre>
  
  <p>Is there any way to get weakTypeOf from CCT parameter?</p>