In the "UNIX SYSTEM" issue of the BSTJ back in October of 1984, I suggested that it might be better, both for functionality and performance, to have a sort that only worked on records with a single key to be sorted lexicographically, and put all the complexity of dealing with native integers, dates, case-mapping, etc into a key-building front end. I wrote such a sort built around a radix sort. The sort itself sported very few options relating to record format (fixed-length, newline terminated, and header-based, where an ascii header identified record length, and, optionally, key position and key length), where to find the key in fixed-length and newline terminated records, merge-only, check sort order only, unique, strip off the sort key (to avoid the need for a post-process in many cases). Key-building was usually near-trivial using awk or perl or a few commands for tweaking native integer and floating point values so they would sort lexicographically. The sort was stable and blazingly fast. Some summer students once complained to me that I was messing up a paper they were writing because my external sort was faster than an internal qsort... the kind of complaint that warms one's heart. At the back of my mind was a generic key-building library that would accommodate (decimal) numbers of arbitrary length, with or without "E" exponents, dates in various formats, string collation for Unicode, etc. It remains at the back of my mind.