Type confusion if private_get_type_id is overridden
Safe Rust code can implement malfunctioning __private_get_type_id__ and cause
type confusion when downcasting, which is an undefined behavior.
Users who derive Fail trait are not affected.
See advisory page for additional details.