I have been reading Programming C# 10.0 by Ian Griffiths. In the Delegates chapter there was an example:
The title of example says ‘Delegate covariance’ but I think this should be ‘Delegate Contravariance’
According to this definition for Predicate:
public delegate bool Predicate<in T>(T obj);
The type parameter is in input position: <in T>
And in this example, we are assigning a less derived type to a more derived type.
Am I wrong about this or the title is wrong?