elixir-lang/elixir — pull request #1240 by fishcakez (2013-06-13 17:46:42+00:00)
Title: Improve efficiency of HashDict contract

When contracting in size the HashDict does not need to relocate (re-hash) key-value pairs. It is not required because each of the deepest nodes (8 element tuples) in the trie become a bucket (list) on contraction. This bucket contains all the key-value pairs in that node (8 element tuple).

Discovered while porting hashdict to erlang's dict API (see https://github.com/fishcakez/hashdict).