public override bool Equals(object obj) {
NewTypeInfo other = obj as NewTypeInfo;
if (other == null) return false;
if (_baseType.Equals(other._baseType) &&
_interfaceTypes.Count == other._interfaceTypes.Count) {
for (int i = 0; i < _interfaceTypes.Count; i++) {
if (!_interfaceTypes[i].Equals(other._interfaceTypes[i])) return false;
}
return true;
}
return false;
}
}