Current implementation of operator== checks the generic type instead of the parameterized type. For example:
class Tuple2<T1, T2> {
@override
bool operator ==(other) =>
other is Tuple2 &&
other.item1 == item1 &&
other.item2 == item2;
What is the reason for not checking the parameterized type?