internal static string RemoveGenericArity(string name)
{
int start = 0;
StringBuilder sb = null;
do {
int pos = name.IndexOf ('`', start);
if (pos < 0) {
if (start == 0)
return name;
sb.Append (name.Substring (start));
break;
}
if (sb == null)
sb = new StringBuilder ();
sb.Append (name.Substring (start, pos-start));
pos++;
while ((pos < name.Length) && Char.IsNumber (name [pos]))
pos++;
start = pos;
} while (start < name.Length);
return sb.ToString ();
}