;; What I currently have is a hash-table like this one: (define table (make-hash-table 3)) (hash-set! table 'a '(1 2 3)) (hash-set! table 'b '(4)) (hash-set! table 'c '(5 6)) ;; And I can easily fold through unique keys like this: (hash-fold (lambda (key entries res) (cons (cons key (apply + entries)) res)) '() table) ; => ((c . 11) (b . 4) (a . 6)) ;; What you suggest is a vhash like this: (define vhash (vhash-cons 'a 1 (vhash-cons 'a 2 (vhash-cons 'a 3 (vhash-cons 'b 4 (vhash-cons 'c 5 (vhash-cons 'c 6 vlist-null))))))) ;; But how can I fold through unique keys there?