Discussion at: https://fosstodon.org/@ianthetechie/114517520321760826
That's a fair question. What I found is that "types" is a bit of a scapegoat for things that have a proper place yet, similar to "utils", "shared." The types crate tends to become a dumping ground for types that don't have a fixed place yet. Code in those crates is not really "discoverable" as in: I would have to look into the crate to see what's in there and how it relates to the rest of the codebase.
For example, the standard library has a bunch of primitive types, but they all live in their own module in the core
crate. The rest lives close to the supporting code, e.g. see the structs in std::process
(https://doc.rust-lang.org/std/process/index.html#structs). If these structs were all in the types
crate, it would make the code and the documentation a lot harder to navigate in my opinion.