S9 LIB  (make-hash-table)                               ==>  hash-table
        (make-hash-table integer)                       ==>  hash-table
        (hash-table-length hash-table)                  ==>  integer
        (hash-table-ref hash-table object)              ==>  value | #f
        (hash-table-set! hash-table object-k object-v)  ==>  unspecific
        (hash-table->list hash-table)                   ==>  list

        (load-from-library "hash-table.scm")

MAKE-HASH-TABLE creates a fresh hash table. When a size is
passed to it, the given number of slots will be created in
the table, otherwise a built-in default is used.
No matter what size is specified, the hash table will grow
automatically when the number of elements stored in it
exceeds its current size. When specifying an explicit size,
it should be a prime number.

HASH-TABLE-LENGTH returns the number of objects currently
stored in the given hash table.

HASH-TABLE-REF retrieves a VALUE from a hash table using the
given OBJECT as key. It returns the value as the only element
of a fresh list. When no element with the given key exists,
it returns #F.

HASH-TABLE-SET! stores the value OBJECT-V under the key
OBJECT-K in the given hash-table.

HASH-TABLE->LIST returns a list containing all pairs of
the given hash table in no specific order.

(let ((h (make-hash-table)))
  (hash-table-set! h "key" 'value)
  (hash-table-ref  h "key"))
                              ==>  (value)
