This is a pair of hash table implementations, for arbitrary datatypes.

One is dynamic; you use the same code for all your datatypes, but
everything is passed around as void *.

The other is static; the typechecking is better (IE, existent),
but you get one copy of the code for each datatype hashed.  Preprocessor
games are used to create a copy of the code for each datatype.

I wrote this code -years- ago, and then didn't really do much with it after
that.  But today I've brought it up to date a bit with respect to current C
standards, and am finally putting it on the web :).  Sat Nov 19 14:41:23 PST
2005.