if you use a single `T` for all pins you don't have this problem:

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

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