// Ref: https://stackoverflow.com/q/37347311 trait Storage { type Error; } enum MyError { StorageProblem(S::Error), } impl From for MyError { //~ ERROR conflicting implementations fn from(error: S::Error) -> MyError { MyError::StorageProblem(error) } } fn main() {}