An item usage is ambiguous. Erroneous code example: ```compile_fail,edition2018,E0659 pub mod moon { pub fn foo() {} } pub mod earth { pub fn foo() {} } mod collider { pub use crate::moon::*; pub use crate::earth::*; } fn main() { crate::collider::foo(); // ERROR: `foo` is ambiguous } ``` This error generally appears when two items with the same name are imported into a module. Here, the `foo` functions are imported and reexported from the `collider` module and therefore, when we're using `collider::foo()`, both functions collide. To solve this error, the best solution is generally to keep the path before the item when using it. Example: ```edition2018 pub mod moon { pub fn foo() {} } pub mod earth { pub fn foo() {} } mod collider { pub use crate::moon; pub use crate::earth; } fn main() { crate::collider::moon::foo(); // ok! crate::collider::earth::foo(); // ok! } ```