static L dropCertainPunctuationAtEnd(L tok, S charsToDrop) { tok = cloneList(tok); for (int i = tok.size()-2; i > 0; i -= 2) { S t = tok.get(i); if (t.length() == 1 && charsToDrop.contains(t)) { tok.remove(i+1); tok.remove(i); } else break; } return tok; } static S dropCertainPunctuationAtEnd(S s, S chars) { ret join(dropCertainPunctuationAtEnd(nlTok(s), chars)); }