aboutsummaryrefslogtreecommitdiff
path: root/benchmarks
diff options
context:
space:
mode:
authorJon Pretty <jon.pretty@propensive.com>2017-11-09 16:34:18 +0000
committerJon Pretty <jon.pretty@propensive.com>2017-11-09 16:34:18 +0000
commit5d862115bd31fcd42484293c1f64652192d95d26 (patch)
tree1e5301cd51192de114db20616e1c18e3d2726a52 /benchmarks
parente396b7a038e458de37ced6b59e0d367883bc3b71 (diff)
downloadmagnolia-5d862115bd31fcd42484293c1f64652192d95d26.tar.gz
magnolia-5d862115bd31fcd42484293c1f64652192d95d26.tar.bz2
magnolia-5d862115bd31fcd42484293c1f64652192d95d26.zip
Upgrade to SBT 1.0 and include testing binariesv0.5.0
Diffstat (limited to 'benchmarks')
-rw-r--r--benchmarks/2.11/src/adt.scala40
-rw-r--r--benchmarks/2.11/src/magnolia/gadt_100.scala2
-rw-r--r--benchmarks/2.11/src/magnolia/small_100.scala2
-rw-r--r--benchmarks/2.12-tl/src/adt.scala75
-rw-r--r--benchmarks/2.12-tl/src/kittens/complex.scala28
-rw-r--r--benchmarks/2.12-tl/src/kittens/eq_10.scala18
-rw-r--r--benchmarks/2.12-tl/src/kittens/eq_50.scala63
-rw-r--r--benchmarks/2.12-tl/src/kittens/gadt_100.scala118
-rw-r--r--benchmarks/2.12-tl/src/kittens/obj.scala118
-rw-r--r--benchmarks/2.12-tl/src/kittens/show_10.scala18
-rw-r--r--benchmarks/2.12-tl/src/kittens/show_50.scala63
-rw-r--r--benchmarks/2.12-tl/src/kittens/show_tree_50.scala63
-rw-r--r--benchmarks/2.12-tl/src/kittens/small_100.scala118
-rw-r--r--benchmarks/2.12-tl/src/magnolia/complex.scala24
-rw-r--r--benchmarks/2.12-tl/src/magnolia/eq_10.scala14
-rw-r--r--benchmarks/2.12-tl/src/magnolia/eq_50.scala59
-rw-r--r--benchmarks/2.12-tl/src/magnolia/gadt_100.scala113
-rw-r--r--benchmarks/2.12-tl/src/magnolia/obj.scala114
-rw-r--r--benchmarks/2.12-tl/src/magnolia/show_10.scala14
-rw-r--r--benchmarks/2.12-tl/src/magnolia/show_50.scala58
-rw-r--r--benchmarks/2.12-tl/src/magnolia/show_tree_50.scala58
-rw-r--r--benchmarks/2.12-tl/src/magnolia/small_100.scala113
-rw-r--r--benchmarks/2.12/src/adt.scala40
-rw-r--r--benchmarks/2.12/src/magnolia/gadt_100.scala2
-rw-r--r--benchmarks/2.12/src/magnolia/small_100.scala2
25 files changed, 1325 insertions, 12 deletions
diff --git a/benchmarks/2.11/src/adt.scala b/benchmarks/2.11/src/adt.scala
index 902d2d8..69dbae0 100644
--- a/benchmarks/2.11/src/adt.scala
+++ b/benchmarks/2.11/src/adt.scala
@@ -16,16 +16,48 @@ case class Address(line1: String, occupant: Human)
sealed trait Alphabet
-case class Greek(άλφα: Letter, βήτα: Letter, γάμα: Letter, δέλτα: Letter, έψιλον: Letter, ζήτα: Letter, ήτα: Letter, θήτα: Letter) extends Alphabet
-case class Cyrillic(б: Letter, в: Letter, г: Letter, д: Letter, ж: Letter, з: Letter) extends Alphabet
-case class Latin(a: Letter, b: Letter, c: Letter, d: Letter, e: Letter, f: Letter, g: Letter, h: Letter, i: Letter, j: Letter, k: Letter, l: Letter, m: Letter, n: Letter, o: Letter, p: Letter, q: Letter, r: Letter, s: Letter, t: Letter, u: Letter, v: Letter) extends Alphabet
+case class Greek(άλφα: Letter,
+ βήτα: Letter,
+ γάμα: Letter,
+ δέλτα: Letter,
+ έψιλον: Letter,
+ ζήτα: Letter,
+ ήτα: Letter,
+ θήτα: Letter)
+ extends Alphabet
+
+case class Cyrillic(б: Letter, в: Letter, г: Letter, д: Letter, ж: Letter, з: Letter)
+ extends Alphabet
+
+case class Latin(a: Letter,
+ b: Letter,
+ c: Letter,
+ d: Letter,
+ e: Letter,
+ f: Letter,
+ g: Letter,
+ h: Letter,
+ i: Letter,
+ j: Letter,
+ k: Letter,
+ l: Letter,
+ m: Letter,
+ n: Letter,
+ o: Letter,
+ p: Letter,
+ q: Letter,
+ r: Letter,
+ s: Letter,
+ t: Letter,
+ u: Letter,
+ v: Letter)
+ extends Alphabet
case class Letter(name: String, phonetic: String)
case class Country(name: String, language: Language, leader: Person, existence: DateRange)
case class Language(name: String, code: String, alphabet: Alphabet)
case class Person(name: String, dateOfBirth: Date)
case class Date(year: Int, month: Month, day: Int)
-
case class DateRange(from: Date, toDate: Date)
sealed trait Month
diff --git a/benchmarks/2.11/src/magnolia/gadt_100.scala b/benchmarks/2.11/src/magnolia/gadt_100.scala
index e392642..0956584 100644
--- a/benchmarks/2.11/src/magnolia/gadt_100.scala
+++ b/benchmarks/2.11/src/magnolia/gadt_100.scala
@@ -55,7 +55,7 @@ object Gen {
Eq.generic[adt.GTree[String]]
Eq.generic[adt.GTree[String]]
Eq.generic[adt.GTree[String]]
-
+
Eq.generic[adt.GTree[String]]
Eq.generic[adt.GTree[String]]
Eq.generic[adt.GTree[String]]
diff --git a/benchmarks/2.11/src/magnolia/small_100.scala b/benchmarks/2.11/src/magnolia/small_100.scala
index b9eb9ed..ca29739 100644
--- a/benchmarks/2.11/src/magnolia/small_100.scala
+++ b/benchmarks/2.11/src/magnolia/small_100.scala
@@ -55,7 +55,7 @@ object Gen {
Show.generic[adt.Letter]
Show.generic[adt.Letter]
Show.generic[adt.Letter]
-
+
Show.generic[adt.Letter]
Show.generic[adt.Letter]
Show.generic[adt.Letter]
diff --git a/benchmarks/2.12-tl/src/adt.scala b/benchmarks/2.12-tl/src/adt.scala
new file mode 100644
index 0000000..69dbae0
--- /dev/null
+++ b/benchmarks/2.12-tl/src/adt.scala
@@ -0,0 +1,75 @@
+package adt
+
+sealed trait Tree
+case class Leaf(value: String) extends Tree
+case class Branch(left: Tree, right: Tree) extends Tree
+
+sealed trait GTree[+T]
+case class GLeaf[+T](value: String) extends GTree[T]
+case class GBranch[+T](left: GTree[T], right: GTree[T]) extends GTree[T]
+
+sealed trait Entity
+
+case class Company(name: String) extends Entity
+case class Human(name: String, age: Int) extends Entity
+case class Address(line1: String, occupant: Human)
+
+sealed trait Alphabet
+
+case class Greek(άλφα: Letter,
+ βήτα: Letter,
+ γάμα: Letter,
+ δέλτα: Letter,
+ έψιλον: Letter,
+ ζήτα: Letter,
+ ήτα: Letter,
+ θήτα: Letter)
+ extends Alphabet
+
+case class Cyrillic(б: Letter, в: Letter, г: Letter, д: Letter, ж: Letter, з: Letter)
+ extends Alphabet
+
+case class Latin(a: Letter,
+ b: Letter,
+ c: Letter,
+ d: Letter,
+ e: Letter,
+ f: Letter,
+ g: Letter,
+ h: Letter,
+ i: Letter,
+ j: Letter,
+ k: Letter,
+ l: Letter,
+ m: Letter,
+ n: Letter,
+ o: Letter,
+ p: Letter,
+ q: Letter,
+ r: Letter,
+ s: Letter,
+ t: Letter,
+ u: Letter,
+ v: Letter)
+ extends Alphabet
+
+case class Letter(name: String, phonetic: String)
+case class Country(name: String, language: Language, leader: Person, existence: DateRange)
+case class Language(name: String, code: String, alphabet: Alphabet)
+case class Person(name: String, dateOfBirth: Date)
+case class Date(year: Int, month: Month, day: Int)
+case class DateRange(from: Date, toDate: Date)
+
+sealed trait Month
+case object Jan extends Month
+case object Feb extends Month
+case object Mar extends Month
+case object Apr extends Month
+case object May extends Month
+case object Jun extends Month
+case object Jul extends Month
+case object Aug extends Month
+case object Sep extends Month
+case object Oct extends Month
+case object Nov extends Month
+case object Dec extends Month
diff --git a/benchmarks/2.12-tl/src/kittens/complex.scala b/benchmarks/2.12-tl/src/kittens/complex.scala
new file mode 100644
index 0000000..70d0d95
--- /dev/null
+++ b/benchmarks/2.12-tl/src/kittens/complex.scala
@@ -0,0 +1,28 @@
+import adt._
+import cats._
+import derived._
+import cats.Show
+import cats.instances.all._
+
+object Gen {
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+ derive.eq[Country]
+}
diff --git a/benchmarks/2.12-tl/src/kittens/eq_10.scala b/benchmarks/2.12-tl/src/kittens/eq_10.scala
new file mode 100644
index 0000000..bed5915
--- /dev/null
+++ b/benchmarks/2.12-tl/src/kittens/eq_10.scala
@@ -0,0 +1,18 @@
+import adt._
+import cats._
+import derived._
+import cats.Eq
+import cats.instances.all._
+
+object Gen {
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+}
diff --git a/benchmarks/2.12-tl/src/kittens/eq_50.scala b/benchmarks/2.12-tl/src/kittens/eq_50.scala
new file mode 100644
index 0000000..cac774d
--- /dev/null
+++ b/benchmarks/2.12-tl/src/kittens/eq_50.scala
@@ -0,0 +1,63 @@
+import adt._
+import cats._
+import derived._
+import cats.Eq
+import cats.instances.all._
+
+object Gen {
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+ derive.eq[Alphabet]
+
+}
diff --git a/benchmarks/2.12-tl/src/kittens/gadt_100.scala b/benchmarks/2.12-tl/src/kittens/gadt_100.scala
new file mode 100644
index 0000000..aa6710d
--- /dev/null
+++ b/benchmarks/2.12-tl/src/kittens/gadt_100.scala
@@ -0,0 +1,118 @@
+import adt._
+import cats._
+import derived._
+import cats.eq
+import cats.instances.all._
+
+object Gen {
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+ derive.eq[GTree[String]]
+
+}
diff --git a/benchmarks/2.12-tl/src/kittens/obj.scala b/benchmarks/2.12-tl/src/kittens/obj.scala
new file mode 100644
index 0000000..c01199e
--- /dev/null
+++ b/benchmarks/2.12-tl/src/kittens/obj.scala
@@ -0,0 +1,118 @@
+import adt._
+import cats._
+import derived._
+import cats.Show
+import cats.instances.all._
+
+object Gen {
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+ derive.show[Jan.type]
+
+}
diff --git a/benchmarks/2.12-tl/src/kittens/show_10.scala b/benchmarks/2.12-tl/src/kittens/show_10.scala
new file mode 100644
index 0000000..5c2a28c
--- /dev/null
+++ b/benchmarks/2.12-tl/src/kittens/show_10.scala
@@ -0,0 +1,18 @@
+import adt._
+import cats._
+import derived._
+import cats.Show
+import cats.instances.all._
+
+object Gen {
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+}
diff --git a/benchmarks/2.12-tl/src/kittens/show_50.scala b/benchmarks/2.12-tl/src/kittens/show_50.scala
new file mode 100644
index 0000000..afd085b
--- /dev/null
+++ b/benchmarks/2.12-tl/src/kittens/show_50.scala
@@ -0,0 +1,63 @@
+import adt._
+import cats._
+import derived._
+import cats.Show
+import cats.instances.all._
+
+object Gen {
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+ derive.show[Alphabet]
+
+}
diff --git a/benchmarks/2.12-tl/src/kittens/show_tree_50.scala b/benchmarks/2.12-tl/src/kittens/show_tree_50.scala
new file mode 100644
index 0000000..18ac6d9
--- /dev/null
+++ b/benchmarks/2.12-tl/src/kittens/show_tree_50.scala
@@ -0,0 +1,63 @@
+import adt._
+import cats._
+import derived._
+import cats.Show
+import cats.instances.all._
+
+object Gen {
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+ derive.show[Tree]
+
+}
diff --git a/benchmarks/2.12-tl/src/kittens/small_100.scala b/benchmarks/2.12-tl/src/kittens/small_100.scala
new file mode 100644
index 0000000..51d922d
--- /dev/null
+++ b/benchmarks/2.12-tl/src/kittens/small_100.scala
@@ -0,0 +1,118 @@
+import adt._
+import cats._
+import derived._
+import cats.Show
+import cats.instances.all._
+
+object Gen {
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+ derive.show[Letter]
+
+}
diff --git a/benchmarks/2.12-tl/src/magnolia/complex.scala b/benchmarks/2.12-tl/src/magnolia/complex.scala
new file mode 100644
index 0000000..f843c29
--- /dev/null
+++ b/benchmarks/2.12-tl/src/magnolia/complex.scala
@@ -0,0 +1,24 @@
+import magnolia._, examples._
+
+object Gen {
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+ Eq.generic[adt.Country]
+}
diff --git a/benchmarks/2.12-tl/src/magnolia/eq_10.scala b/benchmarks/2.12-tl/src/magnolia/eq_10.scala
new file mode 100644
index 0000000..b6adf78
--- /dev/null
+++ b/benchmarks/2.12-tl/src/magnolia/eq_10.scala
@@ -0,0 +1,14 @@
+import magnolia._, examples._
+
+object Gen {
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+}
diff --git a/benchmarks/2.12-tl/src/magnolia/eq_50.scala b/benchmarks/2.12-tl/src/magnolia/eq_50.scala
new file mode 100644
index 0000000..b1dd036
--- /dev/null
+++ b/benchmarks/2.12-tl/src/magnolia/eq_50.scala
@@ -0,0 +1,59 @@
+import magnolia._, examples._
+
+object Gen {
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+ Eq.generic[adt.Alphabet]
+
+}
diff --git a/benchmarks/2.12-tl/src/magnolia/gadt_100.scala b/benchmarks/2.12-tl/src/magnolia/gadt_100.scala
new file mode 100644
index 0000000..0956584
--- /dev/null
+++ b/benchmarks/2.12-tl/src/magnolia/gadt_100.scala
@@ -0,0 +1,113 @@
+import magnolia._, examples._
+
+object Gen {
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+ Eq.generic[adt.GTree[String]]
+}
diff --git a/benchmarks/2.12-tl/src/magnolia/obj.scala b/benchmarks/2.12-tl/src/magnolia/obj.scala
new file mode 100644
index 0000000..0dd82cf
--- /dev/null
+++ b/benchmarks/2.12-tl/src/magnolia/obj.scala
@@ -0,0 +1,114 @@
+import magnolia._, examples._
+
+object Gen {
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+ Show.generic[adt.Jan.type]
+
+}
diff --git a/benchmarks/2.12-tl/src/magnolia/show_10.scala b/benchmarks/2.12-tl/src/magnolia/show_10.scala
new file mode 100644
index 0000000..c6f4a1c
--- /dev/null
+++ b/benchmarks/2.12-tl/src/magnolia/show_10.scala
@@ -0,0 +1,14 @@
+import magnolia._, examples._
+
+object Gen {
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+}
diff --git a/benchmarks/2.12-tl/src/magnolia/show_50.scala b/benchmarks/2.12-tl/src/magnolia/show_50.scala
new file mode 100644
index 0000000..27cfbae
--- /dev/null
+++ b/benchmarks/2.12-tl/src/magnolia/show_50.scala
@@ -0,0 +1,58 @@
+import magnolia._, examples._
+
+object Gen {
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+ Show.generic[adt.Alphabet]
+}
diff --git a/benchmarks/2.12-tl/src/magnolia/show_tree_50.scala b/benchmarks/2.12-tl/src/magnolia/show_tree_50.scala
new file mode 100644
index 0000000..a06513a
--- /dev/null
+++ b/benchmarks/2.12-tl/src/magnolia/show_tree_50.scala
@@ -0,0 +1,58 @@
+import magnolia._, examples._
+
+object Gen {
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+ Show.generic[adt.Tree]
+}
diff --git a/benchmarks/2.12-tl/src/magnolia/small_100.scala b/benchmarks/2.12-tl/src/magnolia/small_100.scala
new file mode 100644
index 0000000..ca29739
--- /dev/null
+++ b/benchmarks/2.12-tl/src/magnolia/small_100.scala
@@ -0,0 +1,113 @@
+import magnolia._, examples._
+
+object Gen {
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+ Show.generic[adt.Letter]
+}
diff --git a/benchmarks/2.12/src/adt.scala b/benchmarks/2.12/src/adt.scala
index 902d2d8..69dbae0 100644
--- a/benchmarks/2.12/src/adt.scala
+++ b/benchmarks/2.12/src/adt.scala
@@ -16,16 +16,48 @@ case class Address(line1: String, occupant: Human)
sealed trait Alphabet
-case class Greek(άλφα: Letter, βήτα: Letter, γάμα: Letter, δέλτα: Letter, έψιλον: Letter, ζήτα: Letter, ήτα: Letter, θήτα: Letter) extends Alphabet
-case class Cyrillic(б: Letter, в: Letter, г: Letter, д: Letter, ж: Letter, з: Letter) extends Alphabet
-case class Latin(a: Letter, b: Letter, c: Letter, d: Letter, e: Letter, f: Letter, g: Letter, h: Letter, i: Letter, j: Letter, k: Letter, l: Letter, m: Letter, n: Letter, o: Letter, p: Letter, q: Letter, r: Letter, s: Letter, t: Letter, u: Letter, v: Letter) extends Alphabet
+case class Greek(άλφα: Letter,
+ βήτα: Letter,
+ γάμα: Letter,
+ δέλτα: Letter,
+ έψιλον: Letter,
+ ζήτα: Letter,
+ ήτα: Letter,
+ θήτα: Letter)
+ extends Alphabet
+
+case class Cyrillic(б: Letter, в: Letter, г: Letter, д: Letter, ж: Letter, з: Letter)
+ extends Alphabet
+
+case class Latin(a: Letter,
+ b: Letter,
+ c: Letter,
+ d: Letter,
+ e: Letter,
+ f: Letter,
+ g: Letter,
+ h: Letter,
+ i: Letter,
+ j: Letter,
+ k: Letter,
+ l: Letter,
+ m: Letter,
+ n: Letter,
+ o: Letter,
+ p: Letter,
+ q: Letter,
+ r: Letter,
+ s: Letter,
+ t: Letter,
+ u: Letter,
+ v: Letter)
+ extends Alphabet
case class Letter(name: String, phonetic: String)
case class Country(name: String, language: Language, leader: Person, existence: DateRange)
case class Language(name: String, code: String, alphabet: Alphabet)
case class Person(name: String, dateOfBirth: Date)
case class Date(year: Int, month: Month, day: Int)
-
case class DateRange(from: Date, toDate: Date)
sealed trait Month
diff --git a/benchmarks/2.12/src/magnolia/gadt_100.scala b/benchmarks/2.12/src/magnolia/gadt_100.scala
index e392642..0956584 100644
--- a/benchmarks/2.12/src/magnolia/gadt_100.scala
+++ b/benchmarks/2.12/src/magnolia/gadt_100.scala
@@ -55,7 +55,7 @@ object Gen {
Eq.generic[adt.GTree[String]]
Eq.generic[adt.GTree[String]]
Eq.generic[adt.GTree[String]]
-
+
Eq.generic[adt.GTree[String]]
Eq.generic[adt.GTree[String]]
Eq.generic[adt.GTree[String]]
diff --git a/benchmarks/2.12/src/magnolia/small_100.scala b/benchmarks/2.12/src/magnolia/small_100.scala
index b9eb9ed..ca29739 100644
--- a/benchmarks/2.12/src/magnolia/small_100.scala
+++ b/benchmarks/2.12/src/magnolia/small_100.scala
@@ -55,7 +55,7 @@ object Gen {
Show.generic[adt.Letter]
Show.generic[adt.Letter]
Show.generic[adt.Letter]
-
+
Show.generic[adt.Letter]
Show.generic[adt.Letter]
Show.generic[adt.Letter]