"Then I have a BSP struct that..." <- > <@andresovela:matrix.org> Then I have a BSP struct that looks like this: > ``` > pub struct Ui { > io_expander: Aw9523b, > } > ``` > The question would be, how can I name `E` in my impl for `Ui`? > ``` > impl Ui > where > embedded_hal_async::i2c::I2c, > { > pub async fn initialize(&mut self) -> Result<(), Error> { > // Stuff > } > } > ``` E is no longer generic. You've named I2c to be `I2cDeviceOnSharedBus` and you previously defined `E` to be equal to `::Error` so you can just substitute the generic that you've named and you get `::Error` which is just a single type. So get rid of the `E` generic on your impl block and just replace it with that