There is a problem with the alist->mapping! procedure in SRFI 146.  As is normal in alists, earlier instances of a key take priority over later instances.  When generating a mapping from scratch, there is no problem: if the association is not present, insert it, and if it is present, do not insert it.

However, when mappings are already partially populated, this won't work, because an association that is present in the mapping must be overridden when the first instance of the key is found, but not when later instances are found.  So either the alist has to be preprocessed to remove duplicate keys, or some internal data structure is required to keep track of which keys have already been overridden.  I think the extra time or space required for these actions would surprise the user.

This is why there is no alist->hash-table! procedure in SRFI 125.  I think the Right Thing is either to remove the procedure altogether, or to shift it to the group that is only supported in (srfi 146) and not in (srfi 146 hash). 

-- 
John Cowan          http://vrici.lojban.org/~cowan        xxxxxx@ccil.org
Rather than making ill-conceived suggestions for improvement based on
uninformed guesses about established conventions in a field of study with
which familiarity is limited, it is sometimes better to stick to merely
observing the usage and listening to the explanations offered, inserting
only questions as needed to fill in gaps in understanding. --Peter Constable