sclass SelectBot extends Concept { new TreeMap examples; new TreeMap guessed; transient S lastMatch; // not used void put(S s, Bool value) { examples.put(s, value); guessed.remove(s); change(); } Bool get(S s) { Bool value = guess_match(filterByValue(examples, Bool.TRUE), s); if (neq(examples.get(s), value)) if (mapPutIfChange(guessed, s, value)) change(); ret value; } }