(define-library (srfi 146 hamt) (import (scheme base) (scheme case-lambda) (only (srfi 1) find-tail) (srfi 16) (only (srfi 143) fx-width) (srfi 151) (srfi 146 hamt-misc) (srfi 146 vector-edit)) (export fragment->mask hamt->list hamt-fetch hamt-null hamt-null? hamt/count hamt/empty? hamt/for-each hamt/immutable hamt/mutable hamt/mutable? hamt/payload? hamt/put hamt/put! hamt/replace hamt/replace! hash-array-mapped-trie? make-hamt ;; These are only needed by tests: collision? hamt-bucket-size hamt-hash-size hamt/root leaf-stride narrow/array narrow/leaves narrow? next-set-bit wide/array wide/children wide?) (include "hamt.scm"))