Why are allocator interfaces and implementations split across `std.mem` / `std.heap`, while IO is colocated under `std.Io`?

I agree and am fully in favor of this. It’s how I’ve written all of my libraries as well. However, the take I’ve seen from Andrew is that he prefers to use namespaces for disambiguation rather than purely for categorization.

It’s a topic that I’m sure will be revisited as the core team looks to solidify the std lib.