combining inheritance of generic types and constraints: