Let's suppose I have crate A that link library foo v1.0 and uses it, but doesn't
pub use anything from foo.
And I have crate B that link the same library foo, but version 2.0 and uses it, but again doesnt'
pub use anything from foo. And I build executable with dependicies on "crate A" and "crate B".
I don't get any link errors.
But I wonder what happend with "C" symbols that have the same name in "foo v 1.0" and "foo v 2.0"? rustc hide it somehow, or linker just take the first one from the symbols with the same name (what would be really bad)?