Describe the bug
When adding a wrapped-thing to a list, it is not guaranteed that a new Id is created for the underlying thing.
To Reproduce
The following code re-produces the error:
new_type('A');
t = [A{}.wrap()];
.list = [];
.list.push(t);
.list[0][0].unwrap().id(); // should return an Id but nil is returned instead
Expected behavior
Wrapped things should generate an Id when added to a list.