sS dropTrailingNumberFromAngleBracketCategory(S s) { if (!isAngleBracketed(s)) ret s; int i = l(s)-1; while (i > 1 && isDigit(s.charAt(i-1))) --i; if (i == l(s)-1) ret s; ret substring(s, 0, i) + ">"; }