Здравствуйте, _FRED_, Вы писали:
_FR>Чтобы экземпляр наследника вдруг не смог бы быть равен экземпляру базового типа.
А чем им для этого GetType() не подошел? Да и для структурной эквивалентности (что и должна обеспечиваться для записей) не нужно совпадение типов. Достаточно совпадения полей и их значений. Так что это должно быть как опция.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.