A *trie* is an ordered tree data structure that is used to store a
mapping where the keys are sequences, usually strings over an alphabet.
In addition to implementing the mapping interface, tries allow finding
the items for a given prefix, and vice versa, finding the items whose
keys are prefixes of a given key.