in reply to removing repeats

OT, but this may be an example (trivial, but valid) of violating of the proposition "algorithm first; then code."

Valid, that is, at least for cases where the script above may be used to test narrative documents for inadvertent repeats or typos (clearly, that's not the only use, tho the use of the overarching :punct: class seems to lean that way).

The substitution on :punct: presents issues in a couple edge cases.

Suppose, for a strained example, an individual named "Joe Williams" were the author of a tome on various Williams (eg, Wm. Gates, William of Ghent, Fred Williams), which tome is named "Williams' Williams."

Less exotically, suppose a line with fragments of two sentences: "...blab, blah," Foo said to Boo. Boo sneered in reply..."

Stripping the punctuation makes the book title satisfy the repeated_word_criteria even tho the original text did not. Similarly, the dialogue example (assuming the lack of a paragraph break as illustrated) would lead the script reporting "Boo" had been duped. Yet adjacent duplication from one line to another would NOT report duplication.

In short (because the habits induced by the way [Pp]erl makes writing hasty or one-off scripts easy, I find I have to remind myself often): "algorithm first; then code."