When thinking about alists and plists as alternatives to keywords, I came up with the idea of a reified typeclass similar to comparators that could be passed to a procedure so that it could make use of a dictionary (alist, plist, hash table, mapping, hashmap, or potentially something else) without knowing its actual type.  It needs 8 procedures (twice as many as a comparator) at minimum, but if you have more efficient implementations of any of the 30+ dict-* procedures, it can make use of them.  All mutators are linear-update (currently hashtables and plists are actually mutated, the others are not).

If anyone is interested, please review <https://bitbucket.org/cowan/r7rs-wg1-infra/src/default/DictionaryInterfaces.md>.  Thanks.