the problem with optional pins is you still have to give a type. You can't have "just None lol", you must have `Option<u32>::None` or `Option<MyPin>::None` or whatever.

so if you do 

```rust
struct Bus<T: OutputPin> {
   bar: Option<T>,
}

let bus = Bus::new(None);
```

the compiler can't infer what type `T` is. so you get these "type annotations needed" errors