aboutsummaryrefslogtreecommitdiff
path: root/examples/src/main/scala/cats.scala
diff options
context:
space:
mode:
Diffstat (limited to 'examples/src/main/scala/cats.scala')
-rw-r--r--examples/src/main/scala/cats.scala23
1 files changed, 11 insertions, 12 deletions
diff --git a/examples/src/main/scala/cats.scala b/examples/src/main/scala/cats.scala
index 08690c2..8d33a0f 100644
--- a/examples/src/main/scala/cats.scala
+++ b/examples/src/main/scala/cats.scala
@@ -1,23 +1,22 @@
-package magnolia.examples.cats
+package magnolia.examples
import scala.collection.immutable.ListMap
import scala.language.experimental.macros
-import scala.language.higherKinds
import cats.Show
import magnolia.ContravariantDerivation
import magnolia.Macros
-object instances extends instances1 {
+object catsShowDerivation {
- implicit val showDerivation = new ContravariantDerivation[Show] {
- type Return = String
- def call[T](show: Show[T], value: T): String = show.show(value)
- def construct[T](body: T => String): Show[T] = body(_)
- def join(xs: ListMap[String, String]): String = xs.map { case (k, v) => s"$k=$v" }.mkString("{", ", ", "}")
- }
-}
-
-trait instances1 {
+ implicit val showDerivation: ContravariantDerivation[Show] =
+ new ContravariantDerivation[Show] {
+ type Return = String
+ def call[T](show: Show[T], value: T): String = show.show(value)
+ def construct[T](body: T => String): Show[T] = body(_)
+ def join(xs: ListMap[String, String]): String =
+ xs.map { case (k, v) => s"$k=$v" }.mkString("{", ", ", "}")
+ }
+
implicit def genericShow[T]: Show[T] = macro Macros.magnolia[T, Show[_]]
}