(module unordered-table mzscheme
(require "../private/require.ss")
(require-contracts)
(require "../private/binding.ss"
"table-interface.ss"
"table-from-set.ss"
"../set/unordered-set.ss")
(provide/contract
[unordered-table% (implementation?/c table<%>)]
[make-unordered-table
(([equ? equality/c]
[keys (listof any/c)]
[values (listof any/c)])
. ->r . table/c)])
(define unordered-table% table-from-set%)
(define (make-unordered-table equ? keys values)
(make-table-from-set
(make-unordered-set (binding-lift equ?)
(map make-binding keys values))))
)