When a class D inherits from, say C<Int>, we must substitute the first type parameter of C with Int when we check assignability of overriding members of D.
Possible solution:
- Find the overridden member as before.
- Find the class containing the member using
streamSupertypes.
- Substitute type parameters.