working, tested 64-bit HAMT