Opening drill
Generic constraints, covariance, and contravariance | Aporeon