sclass ThoughtSpace { new LinkedHashMap statements; new HashMap statementsIndex; new LinkedHashMap concepts; void addStatement(Lisp l) { if (!containsStatement(l)) { LispStatement s = new LispStatement(l); statements.put(s.globalID, s); statementsIndex.put(l, s); } } void removeStatement(LispStatement s) { removeStatement(s.term); } void removeStatement(Lisp l) { LispStatement s = statementsIndex.get(l); if (s != null) { statements.remove(s.globalID); statementsIndex.remove(l); } } bool containsStatement(Lisp l) { ret statementsIndex.containsKey(l); } }