public override int GetHashCode ()
{
int hash = Name.GetHashCode ();
for (MemberName n = Left; n != null; n = n.Left)
hash ^= n.Name.GetHashCode ();
if (is_double_colon)
hash ^= 0xbadc01d;
if (TypeArguments != null)
hash ^= TypeArguments.Count << 5;
return hash & 0x7FFFFFFF;
}