Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- trait Eq[-A] {
- def eq(a: A, b: A): Boolean
- }
- object Eq {
- implicit object IntEq extends Eq[Int] {
- def eq(a: Int, b: Int) = a == b
- }
- }
- trait Supertrait[+A]
- object Supertrait {
- implicit def Eq[A: Eq]: Eq[Supertrait[A]] = ???
- }
- trait Subtrait[+A] extends Supertrait[A]
- object Subtrait {
- implicit def Eq[A: Eq]: Eq[Subtrait[A]] = ???
- }
- def f[A](x: Subtrait[A])(implicit ev: Eq[Subtrait[A]]) = ???
- f(new Subtrait[Int] {})
- Error:(32, 4) ambiguous implicit values:
- both method Eq in object Supertrait of type [A](implicit evidence$1: Eq[A])ShuffleTest.Eq[Supertrait[A]]
- and method Eq in object Subtrait of type [A](implicit evidence$2: Eq[A])Eq[Subtrait[A]]
- match expected type Eq[Subtrait[Int]]
- f(new Subtrait[Int] {})
- ^
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement