sclass ScoredStringSearcher extends ScoredSearcher_stable { Set seen; *() {} *(S query, O... _) { super(query); } // true = duplicate entries are filtered out selfType uniquify(bool b) { seen = b ? new Set : null; this; } void put aka add(S s) { if (seen == null || seen.add(s)) put(s, s); } void addAll(Iterable l) { fOr (s : l) add(s); } void addAll(S... l) { addAll(asList(l)); } }