I think my previous comment was lost, but I think that this is an unsafe API because you can create two `EmptyIndex` values and then call `put` on both of them.