### What it does
Checks for maps with zero-sized value types anywhere in the code.

### Why is this bad?
Since there is only a single value for a zero-sized type, a map
containing zero sized values is effectively a set. Using a set in that case improves
readability and communicates intent more clearly.

### Known problems
* A zero-sized type cannot be recovered later if it contains private fields.
* This lints the signature of public items

### Example
```
fn unique_words(text: &str) -> HashMap<&str, ()> {
    todo!();
}
```
Use instead:
```
fn unique_words(text: &str) -> HashSet<&str> {
    todo!();
}
```