This is still marked RFC, but is a lot closer to production ready than the last round. In particular it is now integrated with the term caching machinery in message.cc. The main implementation cost is the creation of string-map.c to provide associative arrays of strings, with iterators (basically mimicing the Xapian::TermIterators). I'm not sure if these can replace some of the uses of gmime hash tables in the CLI (or if that would be a good idea), but if so that code could move to util, and probably lose the _notmuch_ prefix.