One common "papercut" I suffer from in rust is the compiler giving me the option of core:: or std::, without any guidance I can find anywhere official on what to pick.
For example, I just had the compiler ask me if I wanted core::fmt::Debug or std::fmt::Debug. The doc pages for these two are absolutely identical!
... help: consider importing one of these items instead 1 | use core::fmt::Debug; | 1 | use std::fmt::Debug;
(perhaps unusually for an edition), I'm not suggesting a breaking change, but a change in "default suggested behaviour". In short, there is a "suggested" default to pick when an identical trait is in both core:: and std::, and the compiler uses this suggested default when producing warnings / errors.
Now, I'm not sure which one it should be (sorry!).
If the code is [no_std], it has to be the core:: one.
For normal code, I can see the argument for core:: (for consistency / future no_std), or std:: (so users don't need to worry about core). However, my main thought is, pick one and stop giving people confusing options (or, document the confusing option on core::fmt::Debug / std::fmt::Debug, and everywhere else this choice occurs).