aboutsummaryrefslogtreecommitdiff
path: root/examples/shared/src/main/scala/eq.scala
diff options
context:
space:
mode:
Diffstat (limited to 'examples/shared/src/main/scala/eq.scala')
-rw-r--r--examples/shared/src/main/scala/eq.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/examples/shared/src/main/scala/eq.scala b/examples/shared/src/main/scala/eq.scala
index 8ee42a4..6f00458 100644
--- a/examples/shared/src/main/scala/eq.scala
+++ b/examples/shared/src/main/scala/eq.scala
@@ -11,9 +11,10 @@ object Eq {
/** type constructor for the equality typeclass */
type Typeclass[T] = Eq[T]
+ type ParamType[T, P] = Param[Eq, T] { type PType = P }
/** defines equality for this case class in terms of equality for all its parameters */
- def combine[T](ctx: CaseClass[Eq, T]): Eq[T] = new Eq[T] {
+ def combine[T](ctx: CaseClass[Eq, T, Param[Eq, T]]): Eq[T] = new Eq[T] {
def equal(value1: T, value2: T) = ctx.parameters.forall { param =>
param.typeclass.equal(param.dereference(value1), param.dereference(value2))
}