The top level index is a clojure map (a persistent hash-map by default i believe) of strings (stems) to another map of key to weighting. The hash-map is implemented as a Bagwell Trie under the hood. Check out <a href="http://blog.higher-order.net/2009/09/08/understanding-clojures-persistenthashmap-deftwice/" rel="nofollow">http://blog.higher-order.net/2009/09/08/understanding-clojur...</a> for a lot of detail on the implementation, and <a href="http://en.wikipedia.org/wiki/Trie" rel="nofollow">http://en.wikipedia.org/wiki/Trie</a> for a general overview of how Tries differ from Trees.