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