"Smith, Barry F." <[email protected]> writes: >> When we are at it, why we sometimes have <class>types.h and sometimes not? > > We add these "as needed"; Jed can explain better exactly when they are > needed.
We did some of them to limit header dependencies. For example: https://bitbucket.org/petsc/petsc/commits/c619b03e9a39856418a9e23c79aa5be44c20f181 They've been used in other places without doing the follow-up work of removing the dependency on petscxxx.h in favor of petscxxxtypes.h (which would be a breaking change for some users, but improve incremental build times).
