In reply to @Elegantbeef "What do you mean": an handle is very often referred to an hybrid between an index and a pointer, let's start saying that it's not a pointer, so it won't be invalidated, it's in fact an index to an internal table managed by the gc, this table contains all the pointers aliased, when you realloc one of them, you are just replacing the old with the new, it's O(n), but the handle is not changing that's the point, the handle will always be valid, there is only ONE pointer to fix and it's well known by the gc