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); ```