TypeEqualImpl is the only implementation of this trait.
Primarily used for optimizations by enabling type-specific implementations.
Since TypeEqualImpl is the only implementation, adding -TypeEqual as a trait
bound ensures the implementation is only available when T and U are different types.