From e3c4666f718797defab28dc90a9c1912f5750223 Mon Sep 17 00:00:00 2001 From: Stewart Stewart Date: Sun, 18 Dec 2016 19:28:45 -0500 Subject: remove reflexive/transitive SameId implicits --- src/main/scala/xyz/driver/core/core.scala | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'src/main') diff --git a/src/main/scala/xyz/driver/core/core.scala b/src/main/scala/xyz/driver/core/core.scala index c88c998..d1128b6 100644 --- a/src/main/scala/xyz/driver/core/core.scala +++ b/src/main/scala/xyz/driver/core/core.scala @@ -46,17 +46,9 @@ package core { def convert(id: Id[A]): Id[B] = Id[B](id.value) } - object SameId extends LowPrioritySameIdImplicits { + object SameId { def apply[A, B] = new SameId[A, B] {} - - implicit def reflexive[A]: A ~ A = SameId[A, A] - implicit def symmetric[A, B](implicit ab: A ~ B): B ~ A = SameId[B, A] - } - - trait LowPrioritySameIdImplicits { - protected type ~[A, B] = SameId[A, B] - - implicit def transitive[A, B, C](implicit ab: A ~ B, bc: B ~ C): A ~ C = SameId[A, C] + implicit def symmetric[A, B](implicit ab: SameId[A, B]): SameId[B, A] = SameId[B, A] } implicit class InvariantIdOps[Tag](id: Id[Tag]) { -- cgit v1.2.3