sclass AbstractSayAndInputBot2 extends AbstractSayAndInputBot implements Runnable { LS inputQueue = synchroLinkedList(); F1 isYes = f isYes_1; new LinkedHashSet facts; *() { input = f getInput; } void remember(S fact) { if (facts.add(fact)) print("[Bot learned:] " + fact); } S getInput() { while (empty(inputQueue)) sleep(10); ret trim(popFirst(inputQueue)); } }