The following minimal case can't be used from another crate: ``` use a::foo; pub use foo; mod a { type foo = int; } ``` If I change the `pub use` to `export` it works. So something about the way the exports get written is different. This is blocking #2006.