### What it does
Checks for cases where generics are being used and multiple
syntax specifications for trait bounds are used simultaneously.

### Why is this bad?
Duplicate bounds makes the code
less readable than specifying them only once.

### Example
```
fn func<T: Clone + Default>(arg: T) where T: Clone + Default {}
```

Use instead:
```
fn func<T: Clone + Default>(arg: T) {}

// or

fn func<T>(arg: T) where T: Clone + Default {}
```

```
fn foo<T: Default + Default>(bar: T) {}
```
Use instead:
```
fn foo<T: Default>(bar: T) {}
```

```
fn foo<T>(bar: T) where T: Default + Default {}
```
Use instead:
```
fn foo<T>(bar: T) where T: Default {}
```