In addition to the normal Unix C library, the programme is composed of the following five modules: a control module correct which determines user options and reads standard input for words to be corrected; ListCorrections, which is responsible for ordering and presenting respellings; Kruskal, which determines the Levenshtein distance between the misspelling and candidate respellings; Respell, which generates candidate respellings based on sound-spelling rules and the dictionary; and DictTrie, which accesses the dictionary.
Since the source code is fairly closely commented, there seems little point in going into detail about the implementation here. It does however seem advantageous to explain the purpose and philosophy behind the various modules, and to explain the most important algorithms. The modules will be discussed in bottom-up order, explaining modules used by other modules before explaining the modules that make use of them.