When I'm using Rust's rand crate, if I want to produce a rand number, I would write:

```
use rand::{self, Rng};
let rand = rand::thread_rng().gen::<usize>();

```

If I don't `use rand::Rng`, an error occurs:

> 
> no method named `gen` found for struct `rand::prelude::ThreadRng` in the current scope
> 
> 
> 

That's quite different from what I'm used to. Usually I treat mods like:

```js
import rand from "path";
rand.generate();

```

Once I import the mod I don't need to import something else, and I can use every method it exports.

Why must I `use rand::Rng` to enable the `gen` method on `rand::thread_rng()`?