(module unordered-table mzscheme (require "../private/require.ss") (require-contracts) (require "../private/contracts.ss" "../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)))) )