Fork of HAMT with transactions and custom key types