Unless I'm mistaken, this page: http://dlang.org/garbage.html
states that it's safe to use a union to share storage with a pointer, e.g.
union U { void* ptr; int value }
But that wouldn't be safe if the GC ever moved objects. Should the page
be tweaked? Especially as further down on that page, it says that a
moving garbage collector can be implemented if one follows the rules.
