D.HM.I has become very large, it's currently over 2500 lines. I think we could try to extract: * [ ] The Collision operations on the `Array (Leaf k v)` type * [ ] The bit twiddling code * [ ] Anything else?!