Documentation
Elem2 a b is used to hold elements of a list after insertion, and indicate that we've reached the end of the list.
StringMap a is ternary tree. It is commonly used for storing word lists like dictionaries for spell checking etc.
insert :: String -> a -> StringMap a -> StringMap aSource
Inserts a new list of elements into a tree.
numEntries :: StringMap a -> IntSource
Counts how many entries there are in the tree.