crates.io

this crate uses feature negativeimpls and autotraits

You may want to do something like ```rust struct Foo(T);

impl, U> From> for Foo { fn from(v: Foo) -> Self { Self(T::from(v.0)) } } `` but it wont work because it conflicts with implementationimpl From for T {} provided bycore`.

so we have to bound Foo<T> != Foo<U>

this crate provides trait NotEqual

(T, U): NotEqual is equivalent to T != U

so this will work ```rust struct Foo(T);

impl, U> From> for Foo where (Foo, Foo): NotEqual { fn from(v: Foo) -> Self { Self(T::from(v.0)) } } more simply... rust struct Foo(T);

impl, U> From> for Foo where (T, U): NotEqual { fn from(v: Foo) -> Self { Self(T::from(v.0)) } } ```

this crate also provides Equal