There are both a positive and negative trait implementation for the same type.
Erroneous code example:
trait MyTrait {} impl MyTrait for i32 { } impl !MyTrait for i32 { } // error!
Negative implementations are a promise that the trait will never be implemented for the given types. Therefore, both cannot exist at the same time.