Use cargo-check-external-types to restrict which crates we expose types from
The cargo-check-external-types
tool can be used to list the external types that a crate exposes in its public API, and limit them to an allowable set.
We could use this for several purposes:
- Keeping an eye on which crates successfully hide the abstractions times
- Keeping an eye on which crates we give breaking changes without forcing breaking changes in their dependents
- Over time, limiting the number of new types that we export, to better insulate our crates against breaking changes.
(I am not proposing any kind of global ban on re-exposing types from other crates.)