i was trying to implement `core::error::Error` for an error type in my library. this works fine: ```rust impl core::fmt::Display for MotorError { fn fmt(&self, f: &mut Formatter<'_>) -> core::fmt::Result { write!(f, "{:?}", self) } } impl Error for MotorError { } ``` since `core::error::Error` is still new and i doubt that any HAL already implements it i don't want to force the trait bound on the errors coming from the HAL. but i still thought it'd be nice to implement `cause` in case they do support it, so i've added a second `impl`: ```rust impl Error for MotorError { fn cause(&self) -> Option<&dyn Error> { match self { MotorError::InvalidSpeed => None, MotorError::In1Error(e) => Some(e), MotorError::In2Error(e) => Some(e), MotorError::PwmError(e) => Some(e), } } } ``` sadly, this isn't working: ``` $ cargo build Compiling tb6612fng v0.2.0 error[E0119]: conflicting implementations of trait `core::error::Error` for type `MotorError<_, _, _>` --> src\lib.rs:47:1 | 44 | impl Error for MotorError { | ---------------------------------------------------------------------------------------------------------- first implementation here ... 47 | impl Error for MotorError { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `MotorError<_, _, _>` For more information about this error, try `rustc --explain E0119`. error: could not compile `tb6612fng` (lib) due to 1 previous error ``` is there any way to have two `impl` for the same `trait` on the same `enum`/`struct` depending on which traits the generics implement?