Engineering application programs often have one package that defines some data types that will be shared by many units. It's good to force the definition of a type to be in one place rather than allowing duplicate definitions to exist in several places. The single definition of a shared data type insures that all modules will be working with the same kind of data. Putting all the type definitions in a single package makes them easy to find. There is a danger, however, in creating one monster type definition package.
Monsters usually try to take over the world, and type definition packages are no exception.
If you put all your type definitions in one package, sooner or later practically every module depends on it. Then every module must be recompiled whenever a new type is added to the monster. It is usually better to have several smaller type definition packages, and let the application program use whatever packages it needs. Some data types are more naturally defined in a special package, rather than a general data types package. That's a better approach to take.