sclass SharedPhrases_characterMode { //*(S...|Cl strings) { addAll(this.strings, strings); } *(S... strings) { addAll(this.strings, strings); } *(Cl strings) { addAll(this.strings, strings); } new LS strings; int minLength; // stage 1. split all the lines LLS lineSplits = stringsToLineCompSplits(strings); // stage 2. find similarities CISet ci = intersectCISets(lineSplits); // stage 3. forget the one letter stuff and sort by length (LONG first of course) LS final aka get() = longStrings(ci); } static LS sharedPhrases_characterMode(S... strings) { ret new SharedPhrases_characterMode(strings)!; }