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