When the keys of a record are other records, they obey pointer-equality. Integers I'll take care to leave unhashed so it performs well as an array, & strings I'll prehash. There's other datatypes I'll need to consider, but those are the main ones!
From this key or hash-thereof I'd compute an index into a power-of-2-sized array, by bitshifting the upper bits to XOR with the lower bits thereby ensuring all bits of the key of a say on the index. Without hurting performance as an array.
2/4?