abstract sclass Agent { Collection concepts; // input new LinkedHashSet statements; // output abstract void impl(); void emit(S s) { if (statements.add(s)) print("> " + s); } void runLive(bool doIt) { concepts = aiConcepts(); statements.clear(); impl(); if (doIt) addTruth(statements); else print("Have " + n(statements, "statements") + " to add"); } void doIt { runLive(true); } }