Getting around (the lack of) covariance to write a generic collection

This looks like another use case for generalized supertype constraints.