If you add some elements and then use Arena::drain(), again, this should bump the generation and it doesn't, which is a similar bug.
drain() doesn't fix up the free list or other state. After you drain the whole arena, is still has a positive len(). Then you'll get asserts when you try to use the arena. I'm not sure what exactly will be involved to fix this.
This fixes the second and fourth issues of #30.