Generic Class:
A class that takes type parameters. For example, because
scala.List takes a type parameter it is a generic class
Generic Trait:
A trait that takes type parameters. For example, because
scala.Set takes a type parameter it is a generic trait
Type Parameter:
A parameter to a generic class or generic method that must
be filled in by a type. For example List is defined as
class List[T] { ... }
and identity is defined as
def identity[T](x:T) = x
The T in both cases is a type parameter
