!752 p { typeWriterConsole(); L paragraphs = superState(); printNumberedParagraphs(paragraphs); if (empty(paragraphs)) { print("Nothing to work with"); ret; } L paras = numberParagraphs(paragraphs); int redundancy = 0; for (Para p : paras) { S method = calcOne(paras, p); if (notNull(method)) { print(p.index + " = " + method); ++redundancy; } } print("Redundancy: " + redundancy + " / " + l(paras)); } // returns calculation method if pivot could be calculated from other paragraphs static S calcOne(L all, Para pivot) { L rest = listMinus(all, pivot); for (Para p : rest) { if (eq(p.text, pivot.text)) ret "copy(" + p.index + ")"; } null; }