class
or struct defintions, enum definitions or any macro
definitions. This is why such items (enum, macro, class
and struct definitions) are found in header files.
In order to practice ``least privilege'' exposure, a consumer source file should work with only the object code file and header file from a data type provider. A consumer source file should not need the source file from a data type provider.