Use the fact that we only can store structs in the table to make the complex pointer use safe. Unfortunately the equal and hash functions need to take void * arguments.