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