Enforcing Equals and GetHashCode in BaseType subclasses