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.