void varargs/apply. (define-macro (hashx-invoke hashx-proc ht-var . args) "Invoke HASHX-PROC, a `hashx-*' procedure taking a hash-function, assoc-function, and the hash-table as first args." `(,hashx-proc (hash-table-hash-function ,ht-var) (ht-associator ,ht-var) (ht-real-table ,ht-var) . ,args)) (define-macro (with-hashx-values bindings ht-var . body-forms) "Bind BINDINGS to the hash-function, associator, and real-table of HT-VAR, while evaluating BODY-FORMS." `(let ((,(first bindings) (hash-table-hash-function ,ht-var)) (,(second bindings) (ht-associator ,ht-var)) (,(third bindings) (ht-real-table ,ht-var))) . ,body-forms))