Generics are useful when you _.
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
need a supertrait
are not sure if you need a specific kind of trait