Give names to the opaque structs used for types.

Otherwise, susceptible to unnecessary warnings in some versions of gcc.