define that in a way such that later, the union name can be used as a data type itself.
The way I read it, this means you should be able to declare another union using a single type specifier. In other words, use a typedef just like you did and then you can declare more unions like this:
data unioninstance
(because of the typedef, "data" can be used as a type in itself and doesn't need to be preceded by the "union" keyword.)