A type-safe and generic associative array in C