title: avoid conflicting use paths, in rust
body: <p>I have a module <code>csv</code> and am trying to use the external <code>csv</code> library (<code>use csv::ReaderBuilder;</code>). I am getting a conflict.</p>
  <h2>Minimal code that exhibits the error</h2>
  <pre><code>mod csv {
      use ::csv::ReaderBuilder;
  }
  </code></pre>
  <h2>Error message</h2>
  <pre><code> --&gt; src/csv.rs:4:5
    |
  4 | use csv::ReaderBuilder;
    |     ^^^ help: a similar path exists: `crate::csv`
    |
    = note: `use` statements changed in Rust 2018; read more at &lt;https://doc.rust-lang.org/edition-guide/rust-2018/module-system/path-clarity.html&gt;
  </code></pre>
  <p><strong>My question is how do I avoid such conflicts?</strong>
  When creating a module, knowing the name of all modules that I may use via <code>use</code> seems un-reasonable. What am I doing wrong? I could name all my modules starting with <code>my_</code>, but this is ugly, and almost not the best solution.</p>
  <hr />
  <p>Sorry if some of my terminology is wrong, I am new to rust.</p>