abstract sclass LogicAgent { 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); } }