With the following definition it's possible to ensure the concrete type parameters are equal:
trait WithEqual[T1 >: T2 <: T2, T2]
So the line
type A = WithEqual[Int, Int]
will be legal. Now my question is: How to achieve exactly the opposite? Thus, the following line should not compile:
type B = WithUnequal[Int, Int]