public static string CleanGenerics(this string str)
{
var result = new StringBuilder (str.Length);
int inBrackets = 0;
for (int i = 0; i < str.Length; i++) {
if (str [i] == '<') {
++inBrackets;
} else if (str [i] == '>') {
--inBrackets;
}
if (inBrackets > 0 && str [i] == ' ') {
// ignore
} else {
result.Append (str [i]);
}
}
return result.ToString ();
}