// This checks if the type parameters on the method itself have been substituted in the same way.
int arity = this.Arity;
for (int i = 0; i < arity; i++)
{
// TODO: what about annotations
if (!TypeSymbol.Equals(this.TypeArgumentsWithAnnotations[i].Type, other.TypeArgumentsWithAnnotations[i].Type, TypeCompareKind.ConsiderEverything2))
{
return false;
}
}