Generics are useful when you _.
are not sure if you need a specific kind of trait
need a supertrait
need to reduce code duplication by concretizing values and restricting parameters in functions
need to reduce code duplication by abstracting values further, such as in function parameters