Sometimes it makes more sense to use an abstract type member rather than a generic type parameter.