So, since we're doing it this way, maybe what @rillian had suggested before might make sense: not using a union for node data.

This way, a node that isn't a timestamp node can return some bad timestamp like 0xFFFFFFFFFFFFFFFF or something. or a NULL string pointer, or what have you.

Otherwise, we probably should be doing checks on the node type in these methods to ensure that we're returning the correct sort of data.