Hacker News new | ask | show | jobs
by jyounker 441 days ago
Correct solution: Contravariance for arguments, Covariance for return types.

Another way to put it, if I create a subtype, then the subtype's functions are allowed to be more general in what they accept, and more specific in what they return.

This implies that there is no subtype relation between X[Supertype] and X[Subtype].