sclass Thoughts { new LinkedHashSet statements; new MultiMap statementsByHead; bool add(Lisp statement) { if (statement == null) ret; bool isNew = statements.add(statement); if (isNew) statementsByHead.put(statement.head, statement); ret isNew; } }