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