Comparer and generic delegate variance: which assignment is legal because of contravariance?
class Animal { }
class Dog : Animal { }
IComparer<Animal> animalComparer = Comparer<Animal>.Default;
IComparer<Dog> dogComparer;
IEnumerable<Dog> dogs = new List<Dog>();
IEnumerable<Animal> animals;