(define (make-table2 size hashfunc)
(let ((buckets (make-vector size nil)))
(list t2-tag size hashfunc buckets)))
(define (size-of tbl) (cadr tbl))
(define (hashfunc-of tbl) (caddr tbl))
(define (buckets-of tbl) (cadddr tbl))
(define (table2-get tbl key)
((hashfunc-of tbl) key (size-of tbl))))
(vector-ref (buckets-of tbl) index))))
(define (table2-put! tbl key val)
((hashfunc-of tbl) key (size-of tbl)))
(buckets (buckets-of tbl)))
(vector-set! buckets index
(vector-ref buckets index)))))