+/* Hash table.
+
+ This is a standard hash table with chaining. To locate an
+ element in the table, we compute a hash function over the
+ element's data and use that as an index into an array of
+ doubly linked lists, then linearly search the list.
+
+ The chain lists do not use dynamic allocation. Instead, each
+ structure that can potentially be in a hash must embed a
+ hash_elem member. All of the hash functions operate on these
+ `hash_elem's. The hash_entry macro allows conversion from a
+ hash_elem back to a structure object that contains it.
+
+
+
+*/
+