In programming, a type relationship where a type can be used in place of another type if it is a supertype of that type, opposite of covariance.
"Contravariance is often used in the context of function argument types, where a function can accept arguments of a more generic type than specified."