!7 cmodule TheoryMaker > DynConvo { /* 1. measurable features (fields of object) 2. higher level features (words the user throws in) 3. make theories (random statements) 4. check theories 1. show a random line 2. user types keyword 3. assign keyword to line line $a has keyword $x & line $a's text is $bla & line $y has text $bla => line $b might have keyword $x */ L msgs; // full dialog L shownMsgs; start-thread { if (empty(msgs)) setField(msgs := mainCruddieLog()); showARandomMsg(); } void showMsgs(L l) { setField(shownMsgs := l); setMsgs(l); } void showARandomMsg { setMsgs(randomElementAsList(msgs)); } }