Result types shouldn't be put in the prelude module of a crate
Recently I've tried polars for the first time, and I've encountered something a bit annoying. When importing the prelude module, use polars::prelude::*, polars' Result type was also included. This was in a personal project, where basically every file imports and uses anyhow's Result. Since I had this personal convention that every unqualified Result type is from anyhow, I decided to avoid the prelude and import only what I needed. But importing and using a macro from polars failed because some type was not in scope. Basically, I was kind of forced to qualify anyhow's Result or to import it with a different name.
I know that there are probably easy solutions, or that I only needed a couple of types to make the macro work. But this got me thinking that "polluting" the namespace with a Result type, knowing that is arguably the most common type name in Rust, is not really a good idea. I think crates should export Result in the root of the crate, so that it is easily accessible and so that one can write the full path to that Result type in a few characters (as to avoid the import altogether, if preferable). The prelude is supposed to be used with the \*, and I wouldn't want my namespace to be polluted against my will.
What do you think? It's an incredible minor point for sure, I don't want to bash polars (it's amazing), but I wanted to know what do you guys think.