Skip to content

Commit

Permalink
address feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
kailuowang committed Dec 18, 2017
1 parent 2f836a7 commit b32a7c7
Show file tree
Hide file tree
Showing 12 changed files with 39 additions and 22 deletions.
5 changes: 2 additions & 3 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -393,9 +393,8 @@ def mimaSettings(moduleName: String) = Seq(
exclude[ReversedMissingMethodProblem]("cats.kernel.instances.MapInstances.catsKernelStdCommutativeMonoidForMap"),
exclude[IncompatibleResultTypeProblem]("cats.data.KleisliInstances0.catsDataMonadForKleisliId"),
exclude[InheritedNewAbstractMethodProblem]("cats.kernel.PartialOrderToPartialOrderingConversion.catsKernelPartialOrderingForPartialOrder"),
exclude[InheritedNewAbstractMethodProblem]("cats.kernel.HashToHashingConversion.catsKernelHashToHashing"),
exclude[InheritedNewAbstractMethodProblem]("cats.kernel.PartialOrderToPartialOrderingConversion.catsKernelPartialOrderingForPartialOrder"),
exclude[InheritedNewAbstractMethodProblem]("cats.kernel.HashToHashingConversion.catsKernelHashToHashing")
exclude[InheritedNewAbstractMethodProblem]("cats.kernel.EqToEquivConversion.catsKernelEquivForEq"),
exclude[InheritedNewAbstractMethodProblem]("cats.kernel.OrderToOrderingConversion.catsKernelOrderingForOrder")
)
}
)
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/cats/instances/eq.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package cats
package instances

trait EqInstances {
trait EqInstances extends kernel.instances.EqInstances {
implicit val catsContravariantMonoidalForEq: ContravariantMonoidal[Eq] =
new ContravariantMonoidal[Eq] {
/**
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/cats/instances/hash.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package cats
package instances


trait HashInstances extends kernel.HashToHashingConversion {
trait HashInstances {

implicit val catsContravariantForHash: Contravariant[Hash] =
new Contravariant[Hash] {
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/cats/instances/order.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package cats
package instances

trait OrderInstances extends cats.kernel.OrderToOrderingConversion {
trait OrderInstances extends kernel.instances.OrderInstances {
implicit val catsContravariantMonoidalForOrder: ContravariantMonoidal[Order] =
new ContravariantMonoidal[Order] {
/**
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/cats/instances/partialOrder.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package cats
package instances

trait PartialOrderInstances {
trait PartialOrderInstances extends kernel.instances.PartialOrderInstances {
implicit val catsContravariantSemigroupalForPartialOrder: ContravariantSemigroupal[PartialOrder] =
new ContravariantSemigroupal[PartialOrder] {
/** Derive a `PartialOrder` for `B` given a `PartialOrder[A]` and a function `B => A`.
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/cats/instances/partialOrdering.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package cats
package instances

trait PartialOrderingInstances extends kernel.PartialOrderToPartialOrderingConversion {
trait PartialOrderingInstances {
implicit val catsContravariantSemigroupalForPartialOrdering: ContravariantSemigroupal[PartialOrdering] =
new ContravariantSemigroupal[PartialOrdering] {
/** Derive a `PartialOrdering` for `B` given a `PartialOrdering[A]` and a function `B => A`.
Expand Down
19 changes: 11 additions & 8 deletions kernel/src/main/scala/cats/kernel/Eq.scala
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,17 @@ abstract class EqFunctions[E[T] <: Eq[T]] {

}

object Eq extends EqFunctions[Eq] {
trait EqToEquivConversion {
/**
* Implicitly derive a `scala.math.Equiv[A]` from a `Eq[A]`
* instance.
*/
implicit def catsKernelEquivForEq[A](implicit ev: Eq[A]): Equiv[A] = new Equiv[A] {
def equiv(a: A, b: A) = ev.eqv(a, b)
}
}

object Eq extends EqFunctions[Eq] with EqToEquivConversion {

/**
* Access an implicit `Eq[A]`.
Expand Down Expand Up @@ -66,13 +76,6 @@ object Eq extends EqFunctions[Eq] {
def eqv(x: A, y: A) = eq1.eqv(x, y) || eq2.eqv(x, y)
}

/**
* This gives compatibility with scala's Equiv trait
*/
implicit def catsKernelEquivForEq[A](implicit ev: Eq[A]): Equiv[A] =
new Equiv[A] {
def equiv(a: A, b: A) = ev.eqv(a, b)
}

/**
* Create an `Eq` instance from an `eqv` implementation.
Expand Down
6 changes: 0 additions & 6 deletions kernel/src/main/scala/cats/kernel/Hash.scala
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,3 @@ object Hash extends HashFunctions[Hash] {
}

}

trait HashToHashingConversion {
implicit def catsKernelHashToHashing[A](implicit ev: Hash[A]): Hashing[A] = new Hashing[A] {
override def hash(x: A): Int = ev.hash(x)
}
}
3 changes: 3 additions & 0 deletions kernel/src/main/scala/cats/kernel/instances/all.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ trait AllInstances
with ByteInstances
with CharInstances
with DoubleInstances
with EqInstances
with EitherInstances
with DurationInstances
with FloatInstances
Expand All @@ -20,6 +21,8 @@ trait AllInstances
with LongInstances
with MapInstances
with OptionInstances
with OrderInstances
with PartialOrderInstances
with QueueInstances
with SetInstances
with ShortInstances
Expand Down
6 changes: 6 additions & 0 deletions kernel/src/main/scala/cats/kernel/instances/eq.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package cats.kernel
package instances

trait EqInstances extends EqToEquivConversion

object eq extends EqInstances
6 changes: 6 additions & 0 deletions kernel/src/main/scala/cats/kernel/instances/order.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package cats.kernel
package instances

trait OrderInstances extends OrderToOrderingConversion

object order extends OrderInstances
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package cats.kernel
package instances

trait PartialOrderInstances extends PartialOrderToPartialOrderingConversion

object partialOrder extends PartialOrderInstances

0 comments on commit b32a7c7

Please sign in to comment.