Hash array mapped trie

Also, a hash table may have to be periodically resized, an expensive operation, whereas HAMTs grow dynamically.

Although population count can be implemented in software in O(1) time using a series of shift and add instructions, doing so may perform the operation an order of magnitude slower.

[9] The Pony programming language uses a HAMT for the hash map in its persistent collections package.

[11] The concurrent lock-free version[12] of the hash trie called Ctrie is a mutable thread-safe implementation which ensures progress.

The data-structure has been proven to be correct[13] - Ctrie operations have been shown to have the atomicity, linearizability and lock-freedom properties.