table/unordered-table.ss
(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))))

  )