Copy all of the hash implementation here, so that I can do unordered and hash development together.
It's a new-ish year.