I believe that SRFI 146 should be simplified to provide a guarantee of ordered immutable mappings. The two cases users really need are ordered immutable and unordered mutable, and SRFI 125 provides the latter.
SRFI 146 already provides a guarantee of ordered immutable mappings (using (srfi 146 ordered) if supported by the implementation).
SRFI 146 also allows for an efficient, purely functional implementation of mappings where the keys can be hashed, but not ordered. SRFI 125's procedures, on the other hand, are tailored towards destructive updates.
As Scheme is first-and-foremost a functional programming language, it should not shy away from purely functional data structures (not neglecting mutable data structures, of course). Clojure, for example, has persistent hash maps.
A use case for this are symbol tables for compilers of lexically-scoped languages. If the purely functional interface of SRFI 146 is used, one does not have to copy symbol tables when a new lexical environment is entered (another solution would be to maintain a chain of hash tables but this would be O(k) in the nesting depth k).
Of course, I don't want to advertise to always use SRFI 146 instead of SRFI 125. In many cases, classical hash tables are exactly what are needed.
Finally, I don't think it makes sense to break the orthogonality between SRFI 146 and SRFI 113 we currently have.
Marc
--
If you have ever wondered if you are in hell, it has been said, then
you are on a well-traveled road of spiritual inquiry. If you are
absolutely sure you are in hell, however, then you must be on the Cross
Bronx Expressway. --Alan Feuer, New York Times, 2002-09-20
To unsubscribe from this list please go to http://www.simplelists.com/confirm.php?u=oa8YQq670QJsajDJIblEsMJ9MoezHUAm