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