R7RS-large doesn't seem to have a list datatype yet, which is backed up by a hash table and which guarantees uniqueness of the list entries.
I am not sure whether "Hash List" is the correct term for what I have in mind, but by "Hash List" I mean a hash table whose values are used to link the entries to a Scheme-style list.
The interface would contain procedures like:
(make-hash-list)
(hash-list-contains? hl key)
(hash-list-push! hl key)
(hash-list-pop! hl key)
(hash-list-fold proc seed hl)
(hash-list-fold-right proc seed hl)
(hash-list-reverse! hl)
(hash-list->list hl)
Here, `fold' and `fold-right' respect the order, in which the keys were inserted; `push!' inserts a key at the head of the list (or moves an existing key to the head), `pop!' removes the key at the head of the list. `hash-list->list' allocated a list with the keys in order.
Such a data type could be easily implemented on top of SRFI 125.
Do you also think that it would be worth if R7RS-large had such a datatype?
-- Marc