summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorRyan Scott <ryan.gl.scott@gmail.com>2016-06-18 12:23:12 +0200
committerBen Gamari <ben@smart-cactus.org>2016-06-19 00:27:06 +0200
commit9649fc0ae45e006c2ed54cc5ea2414158949fadb (patch)
treefcc11b8f17032b950fcf2af043f05d8f3232fcf1 /testsuite
parent270d545d557352d5f264247987ee8388f0812187 (diff)
downloadhaskell-9649fc0ae45e006c2ed54cc5ea2414158949fadb.tar.gz
Refactor derived Generic instances to reduce allocations
Previously, derived implementations of `to`/`from` in `Generic` instances were wastefully putting extra `M1`s in every case, which led to an O(n) increase in the number of coercions, resulting in a slowdown during the typechecker phase. This factors out the common `M1` in every case of a `to`/`from` definition so that the typechecker has far fewer coercions to deal with. For a datatype with 300 constructors, this change has been observed to save almost 3 seconds of compilation time. This is one step towards coming up with a solution for #5642. Test Plan: ./validate Reviewers: hvr, austin, simonpj, bgamari Reviewed By: bgamari Subscribers: basvandijk, carter, thomie, osa1 Differential Revision: https://phabricator.haskell.org/D2304 GHC Trac Issues: #5642
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/tests/generics/GenDerivOutput.stderr154
-rw-r--r--testsuite/tests/generics/GenDerivOutput1_0.stderr37
-rw-r--r--testsuite/tests/generics/GenDerivOutput1_1.stderr280
-rw-r--r--testsuite/tests/generics/T10604/T10604_deriving.stderr253
-rw-r--r--testsuite/tests/perf/compiler/T5642.hs402
-rw-r--r--testsuite/tests/perf/compiler/all.T5
-rw-r--r--testsuite/tests/perf/haddock/all.T5
7 files changed, 589 insertions, 547 deletions
diff --git a/testsuite/tests/generics/GenDerivOutput.stderr b/testsuite/tests/generics/GenDerivOutput.stderr
index de11f431e9..2226783029 100644
--- a/testsuite/tests/generics/GenDerivOutput.stderr
+++ b/testsuite/tests/generics/GenDerivOutput.stderr
@@ -2,92 +2,96 @@
==================== Derived instances ====================
Derived instances:
instance GHC.Generics.Generic (GenDerivOutput.List a) where
- GHC.Generics.from GenDerivOutput.Nil
+ GHC.Generics.from x
= GHC.Generics.M1
- (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1))
- GHC.Generics.from (GenDerivOutput.Cons g1 g2)
- = GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2)))))
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)))
- = GenDerivOutput.Nil
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2))))))
- = GenDerivOutput.Cons g1 g2
-
+ (case x of {
+ GenDerivOutput.Nil
+ -> GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ GenDerivOutput.Cons g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2)))) })
+ GHC.Generics.to (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ -> GenDerivOutput.Nil
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2))))
+ -> GenDerivOutput.Cons g1 g2 }
+
instance GHC.Generics.Generic1 GenDerivOutput.List where
- GHC.Generics.from1 GenDerivOutput.Nil
- = GHC.Generics.M1
- (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1))
- GHC.Generics.from1 (GenDerivOutput.Cons g1 g2)
+ GHC.Generics.from1 x
= GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.Par1 g1))
- (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))))
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)))
- = GenDerivOutput.Nil
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
- (GHC.Generics.M1 g2)))))
- = GenDerivOutput.Cons
- (GHC.Generics.unPar1 g1) (GHC.Generics.unRec1 g2)
-
+ (case x of {
+ GenDerivOutput.Nil
+ -> GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ GenDerivOutput.Cons g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.Par1 g1))
+ (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))) })
+ GHC.Generics.to1 (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ -> GenDerivOutput.Nil
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
+ (GHC.Generics.M1 g2)))
+ -> GenDerivOutput.Cons
+ (GHC.Generics.unPar1 g1) (GHC.Generics.unRec1 g2) }
+
instance GHC.Base.Functor GenDerivOutput.List where
GHC.Base.fmap f GenDerivOutput.Nil = GenDerivOutput.Nil
GHC.Base.fmap f (GenDerivOutput.Cons a1 a2)
= GenDerivOutput.Cons (f a1) (GHC.Base.fmap f a2)
-
+
instance GHC.Generics.Generic (GenDerivOutput.Rose a) where
- GHC.Generics.from GenDerivOutput.Empty
+ GHC.Generics.from x
= GHC.Generics.M1
- (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1))
- GHC.Generics.from (GenDerivOutput.Rose g1 g2)
- = GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2)))))
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)))
- = GenDerivOutput.Empty
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2))))))
- = GenDerivOutput.Rose g1 g2
-
+ (case x of {
+ GenDerivOutput.Empty
+ -> GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ GenDerivOutput.Rose g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2)))) })
+ GHC.Generics.to (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ -> GenDerivOutput.Empty
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2))))
+ -> GenDerivOutput.Rose g1 g2 }
+
instance GHC.Generics.Generic1 GenDerivOutput.Rose where
- GHC.Generics.from1 GenDerivOutput.Empty
+ GHC.Generics.from1 x
= GHC.Generics.M1
- (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1))
- GHC.Generics.from1 (GenDerivOutput.Rose g1 g2)
- = GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.Par1 g1))
- (GHC.Generics.M1
- ((GHC.Base..)
- GHC.Generics.Comp1 (GHC.Base.fmap GHC.Generics.Rec1) g2)))))
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)))
- = GenDerivOutput.Empty
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
- (GHC.Generics.M1 g2)))))
- = GenDerivOutput.Rose
- (GHC.Generics.unPar1 g1)
- ((GHC.Base..)
- (GHC.Base.fmap GHC.Generics.unRec1) GHC.Generics.unComp1 g2)
-
+ (case x of {
+ GenDerivOutput.Empty
+ -> GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ GenDerivOutput.Rose g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.Par1 g1))
+ (GHC.Generics.M1
+ ((GHC.Base..)
+ GHC.Generics.Comp1 (GHC.Base.fmap GHC.Generics.Rec1) g2)))) })
+ GHC.Generics.to1 (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ -> GenDerivOutput.Empty
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
+ (GHC.Generics.M1 g2)))
+ -> GenDerivOutput.Rose
+ (GHC.Generics.unPar1 g1)
+ ((GHC.Base..)
+ (GHC.Base.fmap GHC.Generics.unRec1) GHC.Generics.unComp1 g2) }
+
GHC.Generics representation types:
type GHC.Generics.Rep (GenDerivOutput.List a) = GHC.Generics.D1
diff --git a/testsuite/tests/generics/GenDerivOutput1_0.stderr b/testsuite/tests/generics/GenDerivOutput1_0.stderr
index 0f4df6275a..cc12b64a39 100644
--- a/testsuite/tests/generics/GenDerivOutput1_0.stderr
+++ b/testsuite/tests/generics/GenDerivOutput1_0.stderr
@@ -2,25 +2,26 @@
==================== Derived instances ====================
Derived instances:
instance GHC.Generics.Generic1 GenDerivOutput1_0.List where
- GHC.Generics.from1 GenDerivOutput1_0.Nil
+ GHC.Generics.from1 x
= GHC.Generics.M1
- (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1))
- GHC.Generics.from1 (GenDerivOutput1_0.Cons g1 g2)
- = GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.Par1 g1))
- (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))))
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)))
- = GenDerivOutput1_0.Nil
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
- (GHC.Generics.M1 g2)))))
- = GenDerivOutput1_0.Cons
- (GHC.Generics.unPar1 g1) (GHC.Generics.unRec1 g2)
-
+ (case x of {
+ GenDerivOutput1_0.Nil
+ -> GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ GenDerivOutput1_0.Cons g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.Par1 g1))
+ (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))) })
+ GHC.Generics.to1 (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ -> GenDerivOutput1_0.Nil
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
+ (GHC.Generics.M1 g2)))
+ -> GenDerivOutput1_0.Cons
+ (GHC.Generics.unPar1 g1) (GHC.Generics.unRec1 g2) }
+
GHC.Generics representation types:
type GHC.Generics.Rep1 GenDerivOutput1_0.List = GHC.Generics.D1
diff --git a/testsuite/tests/generics/GenDerivOutput1_1.stderr b/testsuite/tests/generics/GenDerivOutput1_1.stderr
index d76d6bb593..53dbda1d62 100644
--- a/testsuite/tests/generics/GenDerivOutput1_1.stderr
+++ b/testsuite/tests/generics/GenDerivOutput1_1.stderr
@@ -2,157 +2,165 @@
==================== Derived instances ====================
Derived instances:
instance GHC.Generics.Generic1 CanDoRep1_1.Dd where
- GHC.Generics.from1 CanDoRep1_1.D0d
+ GHC.Generics.from1 x
= GHC.Generics.M1
- (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1))
- GHC.Generics.from1 (CanDoRep1_1.D1d g1 g2)
- = GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.Par1 g1))
- (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))))
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)))
- = CanDoRep1_1.D0d
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
- (GHC.Generics.M1 g2)))))
- = CanDoRep1_1.D1d (GHC.Generics.unPar1 g1) (GHC.Generics.unRec1 g2)
-
+ (case x of {
+ CanDoRep1_1.D0d
+ -> GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ CanDoRep1_1.D1d g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.Par1 g1))
+ (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))) })
+ GHC.Generics.to1 (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ -> CanDoRep1_1.D0d
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
+ (GHC.Generics.M1 g2)))
+ -> CanDoRep1_1.D1d
+ (GHC.Generics.unPar1 g1) (GHC.Generics.unRec1 g2) }
+
instance GHC.Generics.Generic (CanDoRep1_1.Dd a) where
- GHC.Generics.from CanDoRep1_1.D0d
+ GHC.Generics.from x
= GHC.Generics.M1
- (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1))
- GHC.Generics.from (CanDoRep1_1.D1d g1 g2)
- = GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2)))))
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)))
- = CanDoRep1_1.D0d
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2))))))
- = CanDoRep1_1.D1d g1 g2
-
+ (case x of {
+ CanDoRep1_1.D0d
+ -> GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ CanDoRep1_1.D1d g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2)))) })
+ GHC.Generics.to (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ -> CanDoRep1_1.D0d
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2))))
+ -> CanDoRep1_1.D1d g1 g2 }
+
instance GHC.Generics.Generic (CanDoRep1_1.Dc a) where
- GHC.Generics.from CanDoRep1_1.D0c
+ GHC.Generics.from x
= GHC.Generics.M1
- (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1))
- GHC.Generics.from (CanDoRep1_1.D1c g1 g2)
- = GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2)))))
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)))
- = CanDoRep1_1.D0c
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2))))))
- = CanDoRep1_1.D1c g1 g2
-
+ (case x of {
+ CanDoRep1_1.D0c
+ -> GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ CanDoRep1_1.D1c g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2)))) })
+ GHC.Generics.to (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ -> CanDoRep1_1.D0c
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2))))
+ -> CanDoRep1_1.D1c g1 g2 }
+
instance GHC.Generics.Generic1 CanDoRep1_1.Db where
- GHC.Generics.from1 CanDoRep1_1.D0b
+ GHC.Generics.from1 x
= GHC.Generics.M1
- (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1))
- GHC.Generics.from1 (CanDoRep1_1.D1b g1 g2)
- = GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.Par1 g1))
- (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))))
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)))
- = CanDoRep1_1.D0b
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
- (GHC.Generics.M1 g2)))))
- = CanDoRep1_1.D1b (GHC.Generics.unPar1 g1) (GHC.Generics.unRec1 g2)
-
+ (case x of {
+ CanDoRep1_1.D0b
+ -> GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ CanDoRep1_1.D1b g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.Par1 g1))
+ (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))) })
+ GHC.Generics.to1 (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ -> CanDoRep1_1.D0b
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
+ (GHC.Generics.M1 g2)))
+ -> CanDoRep1_1.D1b
+ (GHC.Generics.unPar1 g1) (GHC.Generics.unRec1 g2) }
+
instance GHC.Generics.Generic (CanDoRep1_1.Da a) where
- GHC.Generics.from CanDoRep1_1.D0
+ GHC.Generics.from x
= GHC.Generics.M1
- (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1))
- GHC.Generics.from (CanDoRep1_1.D1 g1 g2)
- = GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2)))))
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)))
- = CanDoRep1_1.D0
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2))))))
- = CanDoRep1_1.D1 g1 g2
-
+ (case x of {
+ CanDoRep1_1.D0 -> GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ CanDoRep1_1.D1 g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2)))) })
+ GHC.Generics.to (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1) -> CanDoRep1_1.D0
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2))))
+ -> CanDoRep1_1.D1 g1 g2 }
+
instance GHC.Generics.Generic1 CanDoRep1_1.Da where
- GHC.Generics.from1 CanDoRep1_1.D0
+ GHC.Generics.from1 x
= GHC.Generics.M1
- (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1))
- GHC.Generics.from1 (CanDoRep1_1.D1 g1 g2)
- = GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.Par1 g1))
- (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))))
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)))
- = CanDoRep1_1.D0
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
- (GHC.Generics.M1 g2)))))
- = CanDoRep1_1.D1 (GHC.Generics.unPar1 g1) (GHC.Generics.unRec1 g2)
-
+ (case x of {
+ CanDoRep1_1.D0 -> GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ CanDoRep1_1.D1 g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.Par1 g1))
+ (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))) })
+ GHC.Generics.to1 (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1) -> CanDoRep1_1.D0
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
+ (GHC.Generics.M1 g2)))
+ -> CanDoRep1_1.D1
+ (GHC.Generics.unPar1 g1) (GHC.Generics.unRec1 g2) }
+
instance GHC.Generics.Generic (CanDoRep1_1.Db a) where
- GHC.Generics.from CanDoRep1_1.D0b
+ GHC.Generics.from x
= GHC.Generics.M1
- (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1))
- GHC.Generics.from (CanDoRep1_1.D1b g1 g2)
- = GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2)))))
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)))
- = CanDoRep1_1.D0b
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2))))))
- = CanDoRep1_1.D1b g1 g2
-
+ (case x of {
+ CanDoRep1_1.D0b
+ -> GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ CanDoRep1_1.D1b g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2)))) })
+ GHC.Generics.to (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ -> CanDoRep1_1.D0b
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2))))
+ -> CanDoRep1_1.D1b g1 g2 }
+
instance GHC.Generics.Generic1 CanDoRep1_1.Dc where
- GHC.Generics.from1 CanDoRep1_1.D0c
+ GHC.Generics.from1 x
= GHC.Generics.M1
- (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1))
- GHC.Generics.from1 (CanDoRep1_1.D1c g1 g2)
- = GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.Par1 g1))
- (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))))
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)))
- = CanDoRep1_1.D0c
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
- (GHC.Generics.M1 g2)))))
- = CanDoRep1_1.D1c (GHC.Generics.unPar1 g1) (GHC.Generics.unRec1 g2)
-
+ (case x of {
+ CanDoRep1_1.D0c
+ -> GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ CanDoRep1_1.D1c g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.Par1 g1))
+ (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))) })
+ GHC.Generics.to1 (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 GHC.Generics.U1)
+ -> CanDoRep1_1.D0c
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
+ (GHC.Generics.M1 g2)))
+ -> CanDoRep1_1.D1c
+ (GHC.Generics.unPar1 g1) (GHC.Generics.unRec1 g2) }
+
GHC.Generics representation types:
type GHC.Generics.Rep1 CanDoRep1_1.Dd = GHC.Generics.D1
diff --git a/testsuite/tests/generics/T10604/T10604_deriving.stderr b/testsuite/tests/generics/T10604/T10604_deriving.stderr
index cecb2ce308..cbaba8dbbe 100644
--- a/testsuite/tests/generics/T10604/T10604_deriving.stderr
+++ b/testsuite/tests/generics/T10604/T10604_deriving.stderr
@@ -2,162 +2,187 @@
==================== Derived instances ====================
Derived instances:
instance GHC.Generics.Generic (T10604_deriving.Empty a) where
- GHC.Generics.from _
+ GHC.Generics.from x
= GHC.Generics.M1
- (GHC.Err.error
- "No generic representation for empty datatype Empty")
- GHC.Generics.to (GHC.Generics.M1 _)
- = GHC.Err.error "No values for empty datatype Empty"
+ (case x of {
+ _ -> GHC.Err.error
+ "No generic representation for empty datatype Empty" })
+ GHC.Generics.to (GHC.Generics.M1 x)
+ = case x of {
+ _ -> GHC.Err.error "No values for empty datatype Empty" }
instance GHC.Generics.Generic1
GHC.Types.Bool T10604_deriving.Empty where
- GHC.Generics.from1 _
+ GHC.Generics.from1 x
= GHC.Generics.M1
- (GHC.Err.error
- "No generic representation for empty datatype Empty")
- GHC.Generics.to1 (GHC.Generics.M1 _)
- = GHC.Err.error "No values for empty datatype Empty"
+ (case x of {
+ _ -> GHC.Err.error
+ "No generic representation for empty datatype Empty" })
+ GHC.Generics.to1 (GHC.Generics.M1 x)
+ = case x of {
+ _ -> GHC.Err.error "No values for empty datatype Empty" }
instance GHC.Base.Functor (T10604_deriving.Proxy *) where
GHC.Base.fmap f T10604_deriving.Proxy = T10604_deriving.Proxy
instance forall k (a :: k).
GHC.Generics.Generic (T10604_deriving.Proxy k a) where
- GHC.Generics.from T10604_deriving.Proxy
- = GHC.Generics.M1 (GHC.Generics.M1 GHC.Generics.U1)
- GHC.Generics.to (GHC.Generics.M1 (GHC.Generics.M1 GHC.Generics.U1))
- = T10604_deriving.Proxy
+ GHC.Generics.from x
+ = GHC.Generics.M1
+ (case x of {
+ T10604_deriving.Proxy -> GHC.Generics.M1 GHC.Generics.U1 })
+ GHC.Generics.to (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.M1 GHC.Generics.U1 -> T10604_deriving.Proxy }
instance GHC.Generics.Generic1 k (T10604_deriving.Proxy k) where
- GHC.Generics.from1 T10604_deriving.Proxy
- = GHC.Generics.M1 (GHC.Generics.M1 GHC.Generics.U1)
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.M1 GHC.Generics.U1))
- = T10604_deriving.Proxy
+ GHC.Generics.from1 x
+ = GHC.Generics.M1
+ (case x of {
+ T10604_deriving.Proxy -> GHC.Generics.M1 GHC.Generics.U1 })
+ GHC.Generics.to1 (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.M1 GHC.Generics.U1 -> T10604_deriving.Proxy }
instance GHC.Generics.Generic (T10604_deriving.Wrap a) where
- GHC.Generics.from (T10604_deriving.Wrap g1)
+ GHC.Generics.from x
= GHC.Generics.M1
- (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1)))
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1))))
- = T10604_deriving.Wrap g1
+ (case x of {
+ T10604_deriving.Wrap g1
+ -> GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1)) })
+ GHC.Generics.to (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ -> T10604_deriving.Wrap g1 }
instance GHC.Generics.Generic1
(GHC.Types.* -> GHC.Types.*) T10604_deriving.Wrap where
- GHC.Generics.from1 (T10604_deriving.Wrap g1)
+ GHC.Generics.from1 x
= GHC.Generics.M1
- (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.Rec1 g1)))
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.M1 g1)))
- = T10604_deriving.Wrap (GHC.Generics.unRec1 g1)
+ (case x of {
+ T10604_deriving.Wrap g1
+ -> GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.Rec1 g1)) })
+ GHC.Generics.to1 (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.M1 (GHC.Generics.M1 g1)
+ -> T10604_deriving.Wrap (GHC.Generics.unRec1 g1) }
instance forall k (a :: k -> GHC.Types.*).
GHC.Generics.Generic (T10604_deriving.Wrap2 k a) where
- GHC.Generics.from (T10604_deriving.Wrap2 g1)
+ GHC.Generics.from x
= GHC.Generics.M1
- (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1)))
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1))))
- = T10604_deriving.Wrap2 g1
+ (case x of {
+ T10604_deriving.Wrap2 g1
+ -> GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1)) })
+ GHC.Generics.to (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ -> T10604_deriving.Wrap2 g1 }
instance GHC.Generics.Generic1
(k -> GHC.Types.*) (T10604_deriving.Wrap2 k) where
- GHC.Generics.from1 (T10604_deriving.Wrap2 g1)
+ GHC.Generics.from1 x
= GHC.Generics.M1
- (GHC.Generics.M1
- (GHC.Generics.M1
- ((GHC.Base..)
- GHC.Generics.Comp1 (GHC.Base.fmap GHC.Generics.Rec1) g1)))
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.M1 g1)))
- = T10604_deriving.Wrap2
- ((GHC.Base..)
- (GHC.Base.fmap GHC.Generics.unRec1) GHC.Generics.unComp1 g1)
+ (case x of {
+ T10604_deriving.Wrap2 g1
+ -> GHC.Generics.M1
+ (GHC.Generics.M1
+ ((GHC.Base..)
+ GHC.Generics.Comp1 (GHC.Base.fmap GHC.Generics.Rec1) g1)) })
+ GHC.Generics.to1 (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.M1 (GHC.Generics.M1 g1)
+ -> T10604_deriving.Wrap2
+ ((GHC.Base..)
+ (GHC.Base.fmap GHC.Generics.unRec1) GHC.Generics.unComp1 g1) }
instance forall k (a :: k).
GHC.Generics.Generic (T10604_deriving.SumOfProducts k a) where
- GHC.Generics.from (T10604_deriving.Prod1 g1 g2)
- = GHC.Generics.M1
- (GHC.Generics.L1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2)))))
- GHC.Generics.from (T10604_deriving.Prod2 g1 g2)
+ GHC.Generics.from x
= GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2)))))
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2))))))
- = T10604_deriving.Prod1 g1 g2
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
- (GHC.Generics.M1 (GHC.Generics.K1 g2))))))
- = T10604_deriving.Prod2 g1 g2
+ (case x of {
+ T10604_deriving.Prod1 g1 g2
+ -> GHC.Generics.L1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2))))
+ T10604_deriving.Prod2 g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2)))) })
+ GHC.Generics.to (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2))))
+ -> T10604_deriving.Prod1 g1 g2
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 (GHC.Generics.K1 g1))
+ (GHC.Generics.M1 (GHC.Generics.K1 g2))))
+ -> T10604_deriving.Prod2 g1 g2 }
instance GHC.Generics.Generic1
k (T10604_deriving.SumOfProducts k) where
- GHC.Generics.from1 (T10604_deriving.Prod1 g1 g2)
+ GHC.Generics.from1 x
= GHC.Generics.M1
- (GHC.Generics.L1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.Rec1 g1))
- (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))))
- GHC.Generics.from1 (T10604_deriving.Prod2 g1 g2)
- = GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1
- ((GHC.Generics.:*:)
- (GHC.Generics.M1 (GHC.Generics.Rec1 g1))
- (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))))
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
- (GHC.Generics.M1 g2)))))
- = T10604_deriving.Prod1
- (GHC.Generics.unRec1 g1) (GHC.Generics.unRec1 g2)
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
- (GHC.Generics.M1 g2)))))
- = T10604_deriving.Prod2
- (GHC.Generics.unRec1 g1) (GHC.Generics.unRec1 g2)
+ (case x of {
+ T10604_deriving.Prod1 g1 g2
+ -> GHC.Generics.L1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.Rec1 g1))
+ (GHC.Generics.M1 (GHC.Generics.Rec1 g2))))
+ T10604_deriving.Prod2 g1 g2
+ -> GHC.Generics.R1
+ (GHC.Generics.M1
+ ((GHC.Generics.:*:)
+ (GHC.Generics.M1 (GHC.Generics.Rec1 g1))
+ (GHC.Generics.M1 (GHC.Generics.Rec1 g2)))) })
+ GHC.Generics.to1 (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
+ (GHC.Generics.M1 g2)))
+ -> T10604_deriving.Prod1
+ (GHC.Generics.unRec1 g1) (GHC.Generics.unRec1 g2)
+ GHC.Generics.R1 (GHC.Generics.M1 ((GHC.Generics.:*:) (GHC.Generics.M1 g1)
+ (GHC.Generics.M1 g2)))
+ -> T10604_deriving.Prod2
+ (GHC.Generics.unRec1 g1) (GHC.Generics.unRec1 g2) }
instance GHC.Generics.Generic (T10604_deriving.Starify a) where
- GHC.Generics.from (T10604_deriving.Starify1 g1)
- = GHC.Generics.M1
- (GHC.Generics.L1
- (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1))))
- GHC.Generics.from (T10604_deriving.Starify2 g1)
+ GHC.Generics.from x
= GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1))))
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1)))))
- = T10604_deriving.Starify1 g1
- GHC.Generics.to
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1)))))
- = T10604_deriving.Starify2 g1
+ (case x of {
+ T10604_deriving.Starify1 g1
+ -> GHC.Generics.L1
+ (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1)))
+ T10604_deriving.Starify2 g1
+ -> GHC.Generics.R1
+ (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1))) })
+ GHC.Generics.to (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1)))
+ -> T10604_deriving.Starify1 g1
+ GHC.Generics.R1 (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1)))
+ -> T10604_deriving.Starify2 g1 }
instance GHC.Generics.Generic1 * T10604_deriving.Starify where
- GHC.Generics.from1 (T10604_deriving.Starify1 g1)
- = GHC.Generics.M1
- (GHC.Generics.L1
- (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.Par1 g1))))
- GHC.Generics.from1 (T10604_deriving.Starify2 g1)
+ GHC.Generics.from1 x
= GHC.Generics.M1
- (GHC.Generics.R1
- (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1))))
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.L1 (GHC.Generics.M1 (GHC.Generics.M1 g1))))
- = T10604_deriving.Starify1 (GHC.Generics.unPar1 g1)
- GHC.Generics.to1
- (GHC.Generics.M1 (GHC.Generics.R1 (GHC.Generics.M1 (GHC.Generics.M1 g1))))
- = T10604_deriving.Starify2 (GHC.Generics.unK1 g1)
+ (case x of {
+ T10604_deriving.Starify1 g1
+ -> GHC.Generics.L1
+ (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.Par1 g1)))
+ T10604_deriving.Starify2 g1
+ -> GHC.Generics.R1
+ (GHC.Generics.M1 (GHC.Generics.M1 (GHC.Generics.K1 g1))) })
+ GHC.Generics.to1 (GHC.Generics.M1 x)
+ = case x of {
+ GHC.Generics.L1 (GHC.Generics.M1 (GHC.Generics.M1 g1))
+ -> T10604_deriving.Starify1 (GHC.Generics.unPar1 g1)
+ GHC.Generics.R1 (GHC.Generics.M1 (GHC.Generics.M1 g1))
+ -> T10604_deriving.Starify2 (GHC.Generics.unK1 g1) }
GHC.Generics representation types:
diff --git a/testsuite/tests/perf/compiler/T5642.hs b/testsuite/tests/perf/compiler/T5642.hs
index 00c7ee012c..cc4a98026b 100644
--- a/testsuite/tests/perf/compiler/T5642.hs
+++ b/testsuite/tests/perf/compiler/T5642.hs
@@ -44,206 +44,208 @@ module GenBigTypes where
instance Generic BigSum where
type Rep BigSum = Rep_BigSum
- from C0 = M1 (L1 (L1 (L1 (L1 (L1 (L1 (M1 U1)))))))
- from C1 = M1 (L1 (L1 (L1 (L1 (L1 (R1 (L1 (M1 U1))))))))
- from C2 = M1 (L1 (L1 (L1 (L1 (L1 (R1 (R1 (M1 U1))))))))
- from C3 = M1 (L1 (L1 (L1 (L1 (R1 (L1 (M1 U1)))))))
- from C4 = M1 (L1 (L1 (L1 (L1 (R1 (R1 (L1 (M1 U1))))))))
- from C5 = M1 (L1 (L1 (L1 (L1 (R1 (R1 (R1 (M1 U1))))))))
- from C6 = M1 (L1 (L1 (L1 (R1 (L1 (L1 (M1 U1)))))))
- from C7 = M1 (L1 (L1 (L1 (R1 (L1 (R1 (L1 (M1 U1))))))))
- from C8 = M1 (L1 (L1 (L1 (R1 (L1 (R1 (R1 (M1 U1))))))))
- from C9 = M1 (L1 (L1 (L1 (R1 (R1 (L1 (M1 U1)))))))
- from C10 = M1 (L1 (L1 (L1 (R1 (R1 (R1 (L1 (M1 U1))))))))
- from C11 = M1 (L1 (L1 (L1 (R1 (R1 (R1 (R1 (M1 U1))))))))
- from C12 = M1 (L1 (L1 (R1 (L1 (L1 (L1 (M1 U1)))))))
- from C13 = M1 (L1 (L1 (R1 (L1 (L1 (R1 (L1 (M1 U1))))))))
- from C14 = M1 (L1 (L1 (R1 (L1 (L1 (R1 (R1 (M1 U1))))))))
- from C15 = M1 (L1 (L1 (R1 (L1 (R1 (L1 (M1 U1)))))))
- from C16 = M1 (L1 (L1 (R1 (L1 (R1 (R1 (L1 (M1 U1))))))))
- from C17 = M1 (L1 (L1 (R1 (L1 (R1 (R1 (R1 (M1 U1))))))))
- from C18 = M1 (L1 (L1 (R1 (R1 (L1 (L1 (M1 U1)))))))
- from C19 = M1 (L1 (L1 (R1 (R1 (L1 (R1 (L1 (M1 U1))))))))
- from C20 = M1 (L1 (L1 (R1 (R1 (L1 (R1 (R1 (M1 U1))))))))
- from C21 = M1 (L1 (L1 (R1 (R1 (R1 (L1 (L1 (M1 U1))))))))
- from C22 = M1 (L1 (L1 (R1 (R1 (R1 (L1 (R1 (M1 U1))))))))
- from C23 = M1 (L1 (L1 (R1 (R1 (R1 (R1 (L1 (M1 U1))))))))
- from C24 = M1 (L1 (L1 (R1 (R1 (R1 (R1 (R1 (M1 U1))))))))
- from C25 = M1 (L1 (R1 (L1 (L1 (L1 (L1 (M1 U1)))))))
- from C26 = M1 (L1 (R1 (L1 (L1 (L1 (R1 (L1 (M1 U1))))))))
- from C27 = M1 (L1 (R1 (L1 (L1 (L1 (R1 (R1 (M1 U1))))))))
- from C28 = M1 (L1 (R1 (L1 (L1 (R1 (L1 (M1 U1)))))))
- from C29 = M1 (L1 (R1 (L1 (L1 (R1 (R1 (L1 (M1 U1))))))))
- from C30 = M1 (L1 (R1 (L1 (L1 (R1 (R1 (R1 (M1 U1))))))))
- from C31 = M1 (L1 (R1 (L1 (R1 (L1 (L1 (M1 U1)))))))
- from C32 = M1 (L1 (R1 (L1 (R1 (L1 (R1 (L1 (M1 U1))))))))
- from C33 = M1 (L1 (R1 (L1 (R1 (L1 (R1 (R1 (M1 U1))))))))
- from C34 = M1 (L1 (R1 (L1 (R1 (R1 (L1 (M1 U1)))))))
- from C35 = M1 (L1 (R1 (L1 (R1 (R1 (R1 (L1 (M1 U1))))))))
- from C36 = M1 (L1 (R1 (L1 (R1 (R1 (R1 (R1 (M1 U1))))))))
- from C37 = M1 (L1 (R1 (R1 (L1 (L1 (L1 (M1 U1)))))))
- from C38 = M1 (L1 (R1 (R1 (L1 (L1 (R1 (L1 (M1 U1))))))))
- from C39 = M1 (L1 (R1 (R1 (L1 (L1 (R1 (R1 (M1 U1))))))))
- from C40 = M1 (L1 (R1 (R1 (L1 (R1 (L1 (M1 U1)))))))
- from C41 = M1 (L1 (R1 (R1 (L1 (R1 (R1 (L1 (M1 U1))))))))
- from C42 = M1 (L1 (R1 (R1 (L1 (R1 (R1 (R1 (M1 U1))))))))
- from C43 = M1 (L1 (R1 (R1 (R1 (L1 (L1 (M1 U1)))))))
- from C44 = M1 (L1 (R1 (R1 (R1 (L1 (R1 (L1 (M1 U1))))))))
- from C45 = M1 (L1 (R1 (R1 (R1 (L1 (R1 (R1 (M1 U1))))))))
- from C46 = M1 (L1 (R1 (R1 (R1 (R1 (L1 (L1 (M1 U1))))))))
- from C47 = M1 (L1 (R1 (R1 (R1 (R1 (L1 (R1 (M1 U1))))))))
- from C48 = M1 (L1 (R1 (R1 (R1 (R1 (R1 (L1 (M1 U1))))))))
- from C49 = M1 (L1 (R1 (R1 (R1 (R1 (R1 (R1 (M1 U1))))))))
- from C50 = M1 (R1 (L1 (L1 (L1 (L1 (L1 (M1 U1)))))))
- from C51 = M1 (R1 (L1 (L1 (L1 (L1 (R1 (L1 (M1 U1))))))))
- from C52 = M1 (R1 (L1 (L1 (L1 (L1 (R1 (R1 (M1 U1))))))))
- from C53 = M1 (R1 (L1 (L1 (L1 (R1 (L1 (M1 U1)))))))
- from C54 = M1 (R1 (L1 (L1 (L1 (R1 (R1 (L1 (M1 U1))))))))
- from C55 = M1 (R1 (L1 (L1 (L1 (R1 (R1 (R1 (M1 U1))))))))
- from C56 = M1 (R1 (L1 (L1 (R1 (L1 (L1 (M1 U1)))))))
- from C57 = M1 (R1 (L1 (L1 (R1 (L1 (R1 (L1 (M1 U1))))))))
- from C58 = M1 (R1 (L1 (L1 (R1 (L1 (R1 (R1 (M1 U1))))))))
- from C59 = M1 (R1 (L1 (L1 (R1 (R1 (L1 (M1 U1)))))))
- from C60 = M1 (R1 (L1 (L1 (R1 (R1 (R1 (L1 (M1 U1))))))))
- from C61 = M1 (R1 (L1 (L1 (R1 (R1 (R1 (R1 (M1 U1))))))))
- from C62 = M1 (R1 (L1 (R1 (L1 (L1 (L1 (M1 U1)))))))
- from C63 = M1 (R1 (L1 (R1 (L1 (L1 (R1 (L1 (M1 U1))))))))
- from C64 = M1 (R1 (L1 (R1 (L1 (L1 (R1 (R1 (M1 U1))))))))
- from C65 = M1 (R1 (L1 (R1 (L1 (R1 (L1 (M1 U1)))))))
- from C66 = M1 (R1 (L1 (R1 (L1 (R1 (R1 (L1 (M1 U1))))))))
- from C67 = M1 (R1 (L1 (R1 (L1 (R1 (R1 (R1 (M1 U1))))))))
- from C68 = M1 (R1 (L1 (R1 (R1 (L1 (L1 (M1 U1)))))))
- from C69 = M1 (R1 (L1 (R1 (R1 (L1 (R1 (L1 (M1 U1))))))))
- from C70 = M1 (R1 (L1 (R1 (R1 (L1 (R1 (R1 (M1 U1))))))))
- from C71 = M1 (R1 (L1 (R1 (R1 (R1 (L1 (L1 (M1 U1))))))))
- from C72 = M1 (R1 (L1 (R1 (R1 (R1 (L1 (R1 (M1 U1))))))))
- from C73 = M1 (R1 (L1 (R1 (R1 (R1 (R1 (L1 (M1 U1))))))))
- from C74 = M1 (R1 (L1 (R1 (R1 (R1 (R1 (R1 (M1 U1))))))))
- from C75 = M1 (R1 (R1 (L1 (L1 (L1 (L1 (M1 U1)))))))
- from C76 = M1 (R1 (R1 (L1 (L1 (L1 (R1 (L1 (M1 U1))))))))
- from C77 = M1 (R1 (R1 (L1 (L1 (L1 (R1 (R1 (M1 U1))))))))
- from C78 = M1 (R1 (R1 (L1 (L1 (R1 (L1 (M1 U1)))))))
- from C79 = M1 (R1 (R1 (L1 (L1 (R1 (R1 (L1 (M1 U1))))))))
- from C80 = M1 (R1 (R1 (L1 (L1 (R1 (R1 (R1 (M1 U1))))))))
- from C81 = M1 (R1 (R1 (L1 (R1 (L1 (L1 (M1 U1)))))))
- from C82 = M1 (R1 (R1 (L1 (R1 (L1 (R1 (L1 (M1 U1))))))))
- from C83 = M1 (R1 (R1 (L1 (R1 (L1 (R1 (R1 (M1 U1))))))))
- from C84 = M1 (R1 (R1 (L1 (R1 (R1 (L1 (M1 U1)))))))
- from C85 = M1 (R1 (R1 (L1 (R1 (R1 (R1 (L1 (M1 U1))))))))
- from C86 = M1 (R1 (R1 (L1 (R1 (R1 (R1 (R1 (M1 U1))))))))
- from C87 = M1 (R1 (R1 (R1 (L1 (L1 (L1 (M1 U1)))))))
- from C88 = M1 (R1 (R1 (R1 (L1 (L1 (R1 (L1 (M1 U1))))))))
- from C89 = M1 (R1 (R1 (R1 (L1 (L1 (R1 (R1 (M1 U1))))))))
- from C90 = M1 (R1 (R1 (R1 (L1 (R1 (L1 (M1 U1)))))))
- from C91 = M1 (R1 (R1 (R1 (L1 (R1 (R1 (L1 (M1 U1))))))))
- from C92 = M1 (R1 (R1 (R1 (L1 (R1 (R1 (R1 (M1 U1))))))))
- from C93 = M1 (R1 (R1 (R1 (R1 (L1 (L1 (M1 U1)))))))
- from C94 = M1 (R1 (R1 (R1 (R1 (L1 (R1 (L1 (M1 U1))))))))
- from C95 = M1 (R1 (R1 (R1 (R1 (L1 (R1 (R1 (M1 U1))))))))
- from C96 = M1 (R1 (R1 (R1 (R1 (R1 (L1 (L1 (M1 U1))))))))
- from C97 = M1 (R1 (R1 (R1 (R1 (R1 (L1 (R1 (M1 U1))))))))
- from C98 = M1 (R1 (R1 (R1 (R1 (R1 (R1 (L1 (M1 U1))))))))
- from C99 = M1 (R1 (R1 (R1 (R1 (R1 (R1 (R1 (M1 U1))))))))
- to (M1 (L1 (L1 (L1 (L1 (L1 (L1 (M1 U1)))))))) = C0
- to (M1 (L1 (L1 (L1 (L1 (L1 (R1 (L1 (M1 U1))))))))) = C1
- to (M1 (L1 (L1 (L1 (L1 (L1 (R1 (R1 (M1 U1))))))))) = C2
- to (M1 (L1 (L1 (L1 (L1 (R1 (L1 (M1 U1)))))))) = C3
- to (M1 (L1 (L1 (L1 (L1 (R1 (R1 (L1 (M1 U1))))))))) = C4
- to (M1 (L1 (L1 (L1 (L1 (R1 (R1 (R1 (M1 U1))))))))) = C5
- to (M1 (L1 (L1 (L1 (R1 (L1 (L1 (M1 U1)))))))) = C6
- to (M1 (L1 (L1 (L1 (R1 (L1 (R1 (L1 (M1 U1))))))))) = C7
- to (M1 (L1 (L1 (L1 (R1 (L1 (R1 (R1 (M1 U1))))))))) = C8
- to (M1 (L1 (L1 (L1 (R1 (R1 (L1 (M1 U1)))))))) = C9
- to (M1 (L1 (L1 (L1 (R1 (R1 (R1 (L1 (M1 U1))))))))) = C10
- to (M1 (L1 (L1 (L1 (R1 (R1 (R1 (R1 (M1 U1))))))))) = C11
- to (M1 (L1 (L1 (R1 (L1 (L1 (L1 (M1 U1)))))))) = C12
- to (M1 (L1 (L1 (R1 (L1 (L1 (R1 (L1 (M1 U1))))))))) = C13
- to (M1 (L1 (L1 (R1 (L1 (L1 (R1 (R1 (M1 U1))))))))) = C14
- to (M1 (L1 (L1 (R1 (L1 (R1 (L1 (M1 U1)))))))) = C15
- to (M1 (L1 (L1 (R1 (L1 (R1 (R1 (L1 (M1 U1))))))))) = C16
- to (M1 (L1 (L1 (R1 (L1 (R1 (R1 (R1 (M1 U1))))))))) = C17
- to (M1 (L1 (L1 (R1 (R1 (L1 (L1 (M1 U1)))))))) = C18
- to (M1 (L1 (L1 (R1 (R1 (L1 (R1 (L1 (M1 U1))))))))) = C19
- to (M1 (L1 (L1 (R1 (R1 (L1 (R1 (R1 (M1 U1))))))))) = C20
- to (M1 (L1 (L1 (R1 (R1 (R1 (L1 (L1 (M1 U1))))))))) = C21
- to (M1 (L1 (L1 (R1 (R1 (R1 (L1 (R1 (M1 U1))))))))) = C22
- to (M1 (L1 (L1 (R1 (R1 (R1 (R1 (L1 (M1 U1))))))))) = C23
- to (M1 (L1 (L1 (R1 (R1 (R1 (R1 (R1 (M1 U1))))))))) = C24
- to (M1 (L1 (R1 (L1 (L1 (L1 (L1 (M1 U1)))))))) = C25
- to (M1 (L1 (R1 (L1 (L1 (L1 (R1 (L1 (M1 U1))))))))) = C26
- to (M1 (L1 (R1 (L1 (L1 (L1 (R1 (R1 (M1 U1))))))))) = C27
- to (M1 (L1 (R1 (L1 (L1 (R1 (L1 (M1 U1)))))))) = C28
- to (M1 (L1 (R1 (L1 (L1 (R1 (R1 (L1 (M1 U1))))))))) = C29
- to (M1 (L1 (R1 (L1 (L1 (R1 (R1 (R1 (M1 U1))))))))) = C30
- to (M1 (L1 (R1 (L1 (R1 (L1 (L1 (M1 U1)))))))) = C31
- to (M1 (L1 (R1 (L1 (R1 (L1 (R1 (L1 (M1 U1))))))))) = C32
- to (M1 (L1 (R1 (L1 (R1 (L1 (R1 (R1 (M1 U1))))))))) = C33
- to (M1 (L1 (R1 (L1 (R1 (R1 (L1 (M1 U1)))))))) = C34
- to (M1 (L1 (R1 (L1 (R1 (R1 (R1 (L1 (M1 U1))))))))) = C35
- to (M1 (L1 (R1 (L1 (R1 (R1 (R1 (R1 (M1 U1))))))))) = C36
- to (M1 (L1 (R1 (R1 (L1 (L1 (L1 (M1 U1)))))))) = C37
- to (M1 (L1 (R1 (R1 (L1 (L1 (R1 (L1 (M1 U1))))))))) = C38
- to (M1 (L1 (R1 (R1 (L1 (L1 (R1 (R1 (M1 U1))))))))) = C39
- to (M1 (L1 (R1 (R1 (L1 (R1 (L1 (M1 U1)))))))) = C40
- to (M1 (L1 (R1 (R1 (L1 (R1 (R1 (L1 (M1 U1))))))))) = C41
- to (M1 (L1 (R1 (R1 (L1 (R1 (R1 (R1 (M1 U1))))))))) = C42
- to (M1 (L1 (R1 (R1 (R1 (L1 (L1 (M1 U1)))))))) = C43
- to (M1 (L1 (R1 (R1 (R1 (L1 (R1 (L1 (M1 U1))))))))) = C44
- to (M1 (L1 (R1 (R1 (R1 (L1 (R1 (R1 (M1 U1))))))))) = C45
- to (M1 (L1 (R1 (R1 (R1 (R1 (L1 (L1 (M1 U1))))))))) = C46
- to (M1 (L1 (R1 (R1 (R1 (R1 (L1 (R1 (M1 U1))))))))) = C47
- to (M1 (L1 (R1 (R1 (R1 (R1 (R1 (L1 (M1 U1))))))))) = C48
- to (M1 (L1 (R1 (R1 (R1 (R1 (R1 (R1 (M1 U1))))))))) = C49
- to (M1 (R1 (L1 (L1 (L1 (L1 (L1 (M1 U1)))))))) = C50
- to (M1 (R1 (L1 (L1 (L1 (L1 (R1 (L1 (M1 U1))))))))) = C51
- to (M1 (R1 (L1 (L1 (L1 (L1 (R1 (R1 (M1 U1))))))))) = C52
- to (M1 (R1 (L1 (L1 (L1 (R1 (L1 (M1 U1)))))))) = C53
- to (M1 (R1 (L1 (L1 (L1 (R1 (R1 (L1 (M1 U1))))))))) = C54
- to (M1 (R1 (L1 (L1 (L1 (R1 (R1 (R1 (M1 U1))))))))) = C55
- to (M1 (R1 (L1 (L1 (R1 (L1 (L1 (M1 U1)))))))) = C56
- to (M1 (R1 (L1 (L1 (R1 (L1 (R1 (L1 (M1 U1))))))))) = C57
- to (M1 (R1 (L1 (L1 (R1 (L1 (R1 (R1 (M1 U1))))))))) = C58
- to (M1 (R1 (L1 (L1 (R1 (R1 (L1 (M1 U1)))))))) = C59
- to (M1 (R1 (L1 (L1 (R1 (R1 (R1 (L1 (M1 U1))))))))) = C60
- to (M1 (R1 (L1 (L1 (R1 (R1 (R1 (R1 (M1 U1))))))))) = C61
- to (M1 (R1 (L1 (R1 (L1 (L1 (L1 (M1 U1)))))))) = C62
- to (M1 (R1 (L1 (R1 (L1 (L1 (R1 (L1 (M1 U1))))))))) = C63
- to (M1 (R1 (L1 (R1 (L1 (L1 (R1 (R1 (M1 U1))))))))) = C64
- to (M1 (R1 (L1 (R1 (L1 (R1 (L1 (M1 U1)))))))) = C65
- to (M1 (R1 (L1 (R1 (L1 (R1 (R1 (L1 (M1 U1))))))))) = C66
- to (M1 (R1 (L1 (R1 (L1 (R1 (R1 (R1 (M1 U1))))))))) = C67
- to (M1 (R1 (L1 (R1 (R1 (L1 (L1 (M1 U1)))))))) = C68
- to (M1 (R1 (L1 (R1 (R1 (L1 (R1 (L1 (M1 U1))))))))) = C69
- to (M1 (R1 (L1 (R1 (R1 (L1 (R1 (R1 (M1 U1))))))))) = C70
- to (M1 (R1 (L1 (R1 (R1 (R1 (L1 (L1 (M1 U1))))))))) = C71
- to (M1 (R1 (L1 (R1 (R1 (R1 (L1 (R1 (M1 U1))))))))) = C72
- to (M1 (R1 (L1 (R1 (R1 (R1 (R1 (L1 (M1 U1))))))))) = C73
- to (M1 (R1 (L1 (R1 (R1 (R1 (R1 (R1 (M1 U1))))))))) = C74
- to (M1 (R1 (R1 (L1 (L1 (L1 (L1 (M1 U1)))))))) = C75
- to (M1 (R1 (R1 (L1 (L1 (L1 (R1 (L1 (M1 U1))))))))) = C76
- to (M1 (R1 (R1 (L1 (L1 (L1 (R1 (R1 (M1 U1))))))))) = C77
- to (M1 (R1 (R1 (L1 (L1 (R1 (L1 (M1 U1)))))))) = C78
- to (M1 (R1 (R1 (L1 (L1 (R1 (R1 (L1 (M1 U1))))))))) = C79
- to (M1 (R1 (R1 (L1 (L1 (R1 (R1 (R1 (M1 U1))))))))) = C80
- to (M1 (R1 (R1 (L1 (R1 (L1 (L1 (M1 U1)))))))) = C81
- to (M1 (R1 (R1 (L1 (R1 (L1 (R1 (L1 (M1 U1))))))))) = C82
- to (M1 (R1 (R1 (L1 (R1 (L1 (R1 (R1 (M1 U1))))))))) = C83
- to (M1 (R1 (R1 (L1 (R1 (R1 (L1 (M1 U1)))))))) = C84
- to (M1 (R1 (R1 (L1 (R1 (R1 (R1 (L1 (M1 U1))))))))) = C85
- to (M1 (R1 (R1 (L1 (R1 (R1 (R1 (R1 (M1 U1))))))))) = C86
- to (M1 (R1 (R1 (R1 (L1 (L1 (L1 (M1 U1)))))))) = C87
- to (M1 (R1 (R1 (R1 (L1 (L1 (R1 (L1 (M1 U1))))))))) = C88
- to (M1 (R1 (R1 (R1 (L1 (L1 (R1 (R1 (M1 U1))))))))) = C89
- to (M1 (R1 (R1 (R1 (L1 (R1 (L1 (M1 U1)))))))) = C90
- to (M1 (R1 (R1 (R1 (L1 (R1 (R1 (L1 (M1 U1))))))))) = C91
- to (M1 (R1 (R1 (R1 (L1 (R1 (R1 (R1 (M1 U1))))))))) = C92
- to (M1 (R1 (R1 (R1 (R1 (L1 (L1 (M1 U1)))))))) = C93
- to (M1 (R1 (R1 (R1 (R1 (L1 (R1 (L1 (M1 U1))))))))) = C94
- to (M1 (R1 (R1 (R1 (R1 (L1 (R1 (R1 (M1 U1))))))))) = C95
- to (M1 (R1 (R1 (R1 (R1 (R1 (L1 (L1 (M1 U1))))))))) = C96
- to (M1 (R1 (R1 (R1 (R1 (R1 (L1 (R1 (M1 U1))))))))) = C97
- to (M1 (R1 (R1 (R1 (R1 (R1 (R1 (L1 (M1 U1))))))))) = C98
- to (M1 (R1 (R1 (R1 (R1 (R1 (R1 (R1 (M1 U1))))))))) = C99
+ from x = M1 (case x of
+ C0 -> L1 (L1 (L1 (L1 (L1 (L1 (M1 U1))))))
+ C1 -> L1 (L1 (L1 (L1 (L1 (R1 (L1 (M1 U1)))))))
+ C2 -> L1 (L1 (L1 (L1 (L1 (R1 (R1 (M1 U1)))))))
+ C3 -> L1 (L1 (L1 (L1 (R1 (L1 (M1 U1))))))
+ C4 -> L1 (L1 (L1 (L1 (R1 (R1 (L1 (M1 U1)))))))
+ C5 -> L1 (L1 (L1 (L1 (R1 (R1 (R1 (M1 U1)))))))
+ C6 -> L1 (L1 (L1 (R1 (L1 (L1 (M1 U1))))))
+ C7 -> L1 (L1 (L1 (R1 (L1 (R1 (L1 (M1 U1)))))))
+ C8 -> L1 (L1 (L1 (R1 (L1 (R1 (R1 (M1 U1)))))))
+ C9 -> L1 (L1 (L1 (R1 (R1 (L1 (M1 U1))))))
+ C10 -> L1 (L1 (L1 (R1 (R1 (R1 (L1 (M1 U1)))))))
+ C11 -> L1 (L1 (L1 (R1 (R1 (R1 (R1 (M1 U1)))))))
+ C12 -> L1 (L1 (R1 (L1 (L1 (L1 (M1 U1))))))
+ C13 -> L1 (L1 (R1 (L1 (L1 (R1 (L1 (M1 U1)))))))
+ C14 -> L1 (L1 (R1 (L1 (L1 (R1 (R1 (M1 U1)))))))
+ C15 -> L1 (L1 (R1 (L1 (R1 (L1 (M1 U1))))))
+ C16 -> L1 (L1 (R1 (L1 (R1 (R1 (L1 (M1 U1)))))))
+ C17 -> L1 (L1 (R1 (L1 (R1 (R1 (R1 (M1 U1)))))))
+ C18 -> L1 (L1 (R1 (R1 (L1 (L1 (M1 U1))))))
+ C19 -> L1 (L1 (R1 (R1 (L1 (R1 (L1 (M1 U1)))))))
+ C20 -> L1 (L1 (R1 (R1 (L1 (R1 (R1 (M1 U1)))))))
+ C21 -> L1 (L1 (R1 (R1 (R1 (L1 (L1 (M1 U1)))))))
+ C22 -> L1 (L1 (R1 (R1 (R1 (L1 (R1 (M1 U1)))))))
+ C23 -> L1 (L1 (R1 (R1 (R1 (R1 (L1 (M1 U1)))))))
+ C24 -> L1 (L1 (R1 (R1 (R1 (R1 (R1 (M1 U1)))))))
+ C25 -> L1 (R1 (L1 (L1 (L1 (L1 (M1 U1))))))
+ C26 -> L1 (R1 (L1 (L1 (L1 (R1 (L1 (M1 U1)))))))
+ C27 -> L1 (R1 (L1 (L1 (L1 (R1 (R1 (M1 U1)))))))
+ C28 -> L1 (R1 (L1 (L1 (R1 (L1 (M1 U1))))))
+ C29 -> L1 (R1 (L1 (L1 (R1 (R1 (L1 (M1 U1)))))))
+ C30 -> L1 (R1 (L1 (L1 (R1 (R1 (R1 (M1 U1)))))))
+ C31 -> L1 (R1 (L1 (R1 (L1 (L1 (M1 U1))))))
+ C32 -> L1 (R1 (L1 (R1 (L1 (R1 (L1 (M1 U1)))))))
+ C33 -> L1 (R1 (L1 (R1 (L1 (R1 (R1 (M1 U1)))))))
+ C34 -> L1 (R1 (L1 (R1 (R1 (L1 (M1 U1))))))
+ C35 -> L1 (R1 (L1 (R1 (R1 (R1 (L1 (M1 U1)))))))
+ C36 -> L1 (R1 (L1 (R1 (R1 (R1 (R1 (M1 U1)))))))
+ C37 -> L1 (R1 (R1 (L1 (L1 (L1 (M1 U1))))))
+ C38 -> L1 (R1 (R1 (L1 (L1 (R1 (L1 (M1 U1)))))))
+ C39 -> L1 (R1 (R1 (L1 (L1 (R1 (R1 (M1 U1)))))))
+ C40 -> L1 (R1 (R1 (L1 (R1 (L1 (M1 U1))))))
+ C41 -> L1 (R1 (R1 (L1 (R1 (R1 (L1 (M1 U1)))))))
+ C42 -> L1 (R1 (R1 (L1 (R1 (R1 (R1 (M1 U1)))))))
+ C43 -> L1 (R1 (R1 (R1 (L1 (L1 (M1 U1))))))
+ C44 -> L1 (R1 (R1 (R1 (L1 (R1 (L1 (M1 U1)))))))
+ C45 -> L1 (R1 (R1 (R1 (L1 (R1 (R1 (M1 U1)))))))
+ C46 -> L1 (R1 (R1 (R1 (R1 (L1 (L1 (M1 U1)))))))
+ C47 -> L1 (R1 (R1 (R1 (R1 (L1 (R1 (M1 U1)))))))
+ C48 -> L1 (R1 (R1 (R1 (R1 (R1 (L1 (M1 U1)))))))
+ C49 -> L1 (R1 (R1 (R1 (R1 (R1 (R1 (M1 U1)))))))
+ C50 -> R1 (L1 (L1 (L1 (L1 (L1 (M1 U1))))))
+ C51 -> R1 (L1 (L1 (L1 (L1 (R1 (L1 (M1 U1)))))))
+ C52 -> R1 (L1 (L1 (L1 (L1 (R1 (R1 (M1 U1)))))))
+ C53 -> R1 (L1 (L1 (L1 (R1 (L1 (M1 U1))))))
+ C54 -> R1 (L1 (L1 (L1 (R1 (R1 (L1 (M1 U1)))))))
+ C55 -> R1 (L1 (L1 (L1 (R1 (R1 (R1 (M1 U1)))))))
+ C56 -> R1 (L1 (L1 (R1 (L1 (L1 (M1 U1))))))
+ C57 -> R1 (L1 (L1 (R1 (L1 (R1 (L1 (M1 U1)))))))
+ C58 -> R1 (L1 (L1 (R1 (L1 (R1 (R1 (M1 U1)))))))
+ C59 -> R1 (L1 (L1 (R1 (R1 (L1 (M1 U1))))))
+ C60 -> R1 (L1 (L1 (R1 (R1 (R1 (L1 (M1 U1)))))))
+ C61 -> R1 (L1 (L1 (R1 (R1 (R1 (R1 (M1 U1)))))))
+ C62 -> R1 (L1 (R1 (L1 (L1 (L1 (M1 U1))))))
+ C63 -> R1 (L1 (R1 (L1 (L1 (R1 (L1 (M1 U1)))))))
+ C64 -> R1 (L1 (R1 (L1 (L1 (R1 (R1 (M1 U1)))))))
+ C65 -> R1 (L1 (R1 (L1 (R1 (L1 (M1 U1))))))
+ C66 -> R1 (L1 (R1 (L1 (R1 (R1 (L1 (M1 U1)))))))
+ C67 -> R1 (L1 (R1 (L1 (R1 (R1 (R1 (M1 U1)))))))
+ C68 -> R1 (L1 (R1 (R1 (L1 (L1 (M1 U1))))))
+ C69 -> R1 (L1 (R1 (R1 (L1 (R1 (L1 (M1 U1)))))))
+ C70 -> R1 (L1 (R1 (R1 (L1 (R1 (R1 (M1 U1)))))))
+ C71 -> R1 (L1 (R1 (R1 (R1 (L1 (L1 (M1 U1)))))))
+ C72 -> R1 (L1 (R1 (R1 (R1 (L1 (R1 (M1 U1)))))))
+ C73 -> R1 (L1 (R1 (R1 (R1 (R1 (L1 (M1 U1)))))))
+ C74 -> R1 (L1 (R1 (R1 (R1 (R1 (R1 (M1 U1)))))))
+ C75 -> R1 (R1 (L1 (L1 (L1 (L1 (M1 U1))))))
+ C76 -> R1 (R1 (L1 (L1 (L1 (R1 (L1 (M1 U1)))))))
+ C77 -> R1 (R1 (L1 (L1 (L1 (R1 (R1 (M1 U1)))))))
+ C78 -> R1 (R1 (L1 (L1 (R1 (L1 (M1 U1))))))
+ C79 -> R1 (R1 (L1 (L1 (R1 (R1 (L1 (M1 U1)))))))
+ C80 -> R1 (R1 (L1 (L1 (R1 (R1 (R1 (M1 U1)))))))
+ C81 -> R1 (R1 (L1 (R1 (L1 (L1 (M1 U1))))))
+ C82 -> R1 (R1 (L1 (R1 (L1 (R1 (L1 (M1 U1)))))))
+ C83 -> R1 (R1 (L1 (R1 (L1 (R1 (R1 (M1 U1)))))))
+ C84 -> R1 (R1 (L1 (R1 (R1 (L1 (M1 U1))))))
+ C85 -> R1 (R1 (L1 (R1 (R1 (R1 (L1 (M1 U1)))))))
+ C86 -> R1 (R1 (L1 (R1 (R1 (R1 (R1 (M1 U1)))))))
+ C87 -> R1 (R1 (R1 (L1 (L1 (L1 (M1 U1))))))
+ C88 -> R1 (R1 (R1 (L1 (L1 (R1 (L1 (M1 U1)))))))
+ C89 -> R1 (R1 (R1 (L1 (L1 (R1 (R1 (M1 U1)))))))
+ C90 -> R1 (R1 (R1 (L1 (R1 (L1 (M1 U1))))))
+ C91 -> R1 (R1 (R1 (L1 (R1 (R1 (L1 (M1 U1)))))))
+ C92 -> R1 (R1 (R1 (L1 (R1 (R1 (R1 (M1 U1)))))))
+ C93 -> R1 (R1 (R1 (R1 (L1 (L1 (M1 U1))))))
+ C94 -> R1 (R1 (R1 (R1 (L1 (R1 (L1 (M1 U1)))))))
+ C95 -> R1 (R1 (R1 (R1 (L1 (R1 (R1 (M1 U1)))))))
+ C96 -> R1 (R1 (R1 (R1 (R1 (L1 (L1 (M1 U1)))))))
+ C97 -> R1 (R1 (R1 (R1 (R1 (L1 (R1 (M1 U1)))))))
+ C98 -> R1 (R1 (R1 (R1 (R1 (R1 (L1 (M1 U1)))))))
+ C99 -> R1 (R1 (R1 (R1 (R1 (R1 (R1 (M1 U1))))))))
+ to (M1 x) = case x of
+ L1 (L1 (L1 (L1 (L1 (L1 (M1 U1)))))) -> C0
+ L1 (L1 (L1 (L1 (L1 (R1 (L1 (M1 U1))))))) -> C1
+ L1 (L1 (L1 (L1 (L1 (R1 (R1 (M1 U1))))))) -> C2
+ L1 (L1 (L1 (L1 (R1 (L1 (M1 U1)))))) -> C3
+ L1 (L1 (L1 (L1 (R1 (R1 (L1 (M1 U1))))))) -> C4
+ L1 (L1 (L1 (L1 (R1 (R1 (R1 (M1 U1))))))) -> C5
+ L1 (L1 (L1 (R1 (L1 (L1 (M1 U1)))))) -> C6
+ L1 (L1 (L1 (R1 (L1 (R1 (L1 (M1 U1))))))) -> C7
+ L1 (L1 (L1 (R1 (L1 (R1 (R1 (M1 U1))))))) -> C8
+ L1 (L1 (L1 (R1 (R1 (L1 (M1 U1)))))) -> C9
+ L1 (L1 (L1 (R1 (R1 (R1 (L1 (M1 U1))))))) -> C10
+ L1 (L1 (L1 (R1 (R1 (R1 (R1 (M1 U1))))))) -> C11
+ L1 (L1 (R1 (L1 (L1 (L1 (M1 U1)))))) -> C12
+ L1 (L1 (R1 (L1 (L1 (R1 (L1 (M1 U1))))))) -> C13
+ L1 (L1 (R1 (L1 (L1 (R1 (R1 (M1 U1))))))) -> C14
+ L1 (L1 (R1 (L1 (R1 (L1 (M1 U1)))))) -> C15
+ L1 (L1 (R1 (L1 (R1 (R1 (L1 (M1 U1))))))) -> C16
+ L1 (L1 (R1 (L1 (R1 (R1 (R1 (M1 U1))))))) -> C17
+ L1 (L1 (R1 (R1 (L1 (L1 (M1 U1)))))) -> C18
+ L1 (L1 (R1 (R1 (L1 (R1 (L1 (M1 U1))))))) -> C19
+ L1 (L1 (R1 (R1 (L1 (R1 (R1 (M1 U1))))))) -> C20
+ L1 (L1 (R1 (R1 (R1 (L1 (L1 (M1 U1))))))) -> C21
+ L1 (L1 (R1 (R1 (R1 (L1 (R1 (M1 U1))))))) -> C22
+ L1 (L1 (R1 (R1 (R1 (R1 (L1 (M1 U1))))))) -> C23
+ L1 (L1 (R1 (R1 (R1 (R1 (R1 (M1 U1))))))) -> C24
+ L1 (R1 (L1 (L1 (L1 (L1 (M1 U1)))))) -> C25
+ L1 (R1 (L1 (L1 (L1 (R1 (L1 (M1 U1))))))) -> C26
+ L1 (R1 (L1 (L1 (L1 (R1 (R1 (M1 U1))))))) -> C27
+ L1 (R1 (L1 (L1 (R1 (L1 (M1 U1)))))) -> C28
+ L1 (R1 (L1 (L1 (R1 (R1 (L1 (M1 U1))))))) -> C29
+ L1 (R1 (L1 (L1 (R1 (R1 (R1 (M1 U1))))))) -> C30
+ L1 (R1 (L1 (R1 (L1 (L1 (M1 U1)))))) -> C31
+ L1 (R1 (L1 (R1 (L1 (R1 (L1 (M1 U1))))))) -> C32
+ L1 (R1 (L1 (R1 (L1 (R1 (R1 (M1 U1))))))) -> C33
+ L1 (R1 (L1 (R1 (R1 (L1 (M1 U1)))))) -> C34
+ L1 (R1 (L1 (R1 (R1 (R1 (L1 (M1 U1))))))) -> C35
+ L1 (R1 (L1 (R1 (R1 (R1 (R1 (M1 U1))))))) -> C36
+ L1 (R1 (R1 (L1 (L1 (L1 (M1 U1)))))) -> C37
+ L1 (R1 (R1 (L1 (L1 (R1 (L1 (M1 U1))))))) -> C38
+ L1 (R1 (R1 (L1 (L1 (R1 (R1 (M1 U1))))))) -> C39
+ L1 (R1 (R1 (L1 (R1 (L1 (M1 U1)))))) -> C40
+ L1 (R1 (R1 (L1 (R1 (R1 (L1 (M1 U1))))))) -> C41
+ L1 (R1 (R1 (L1 (R1 (R1 (R1 (M1 U1))))))) -> C42
+ L1 (R1 (R1 (R1 (L1 (L1 (M1 U1)))))) -> C43
+ L1 (R1 (R1 (R1 (L1 (R1 (L1 (M1 U1))))))) -> C44
+ L1 (R1 (R1 (R1 (L1 (R1 (R1 (M1 U1))))))) -> C45
+ L1 (R1 (R1 (R1 (R1 (L1 (L1 (M1 U1))))))) -> C46
+ L1 (R1 (R1 (R1 (R1 (L1 (R1 (M1 U1))))))) -> C47
+ L1 (R1 (R1 (R1 (R1 (R1 (L1 (M1 U1))))))) -> C48
+ L1 (R1 (R1 (R1 (R1 (R1 (R1 (M1 U1))))))) -> C49
+ R1 (L1 (L1 (L1 (L1 (L1 (M1 U1)))))) -> C50
+ R1 (L1 (L1 (L1 (L1 (R1 (L1 (M1 U1))))))) -> C51
+ R1 (L1 (L1 (L1 (L1 (R1 (R1 (M1 U1))))))) -> C52
+ R1 (L1 (L1 (L1 (R1 (L1 (M1 U1)))))) -> C53
+ R1 (L1 (L1 (L1 (R1 (R1 (L1 (M1 U1))))))) -> C54
+ R1 (L1 (L1 (L1 (R1 (R1 (R1 (M1 U1))))))) -> C55
+ R1 (L1 (L1 (R1 (L1 (L1 (M1 U1)))))) -> C56
+ R1 (L1 (L1 (R1 (L1 (R1 (L1 (M1 U1))))))) -> C57
+ R1 (L1 (L1 (R1 (L1 (R1 (R1 (M1 U1))))))) -> C58
+ R1 (L1 (L1 (R1 (R1 (L1 (M1 U1)))))) -> C59
+ R1 (L1 (L1 (R1 (R1 (R1 (L1 (M1 U1))))))) -> C60
+ R1 (L1 (L1 (R1 (R1 (R1 (R1 (M1 U1))))))) -> C61
+ R1 (L1 (R1 (L1 (L1 (L1 (M1 U1)))))) -> C62
+ R1 (L1 (R1 (L1 (L1 (R1 (L1 (M1 U1))))))) -> C63
+ R1 (L1 (R1 (L1 (L1 (R1 (R1 (M1 U1))))))) -> C64
+ R1 (L1 (R1 (L1 (R1 (L1 (M1 U1)))))) -> C65
+ R1 (L1 (R1 (L1 (R1 (R1 (L1 (M1 U1))))))) -> C66
+ R1 (L1 (R1 (L1 (R1 (R1 (R1 (M1 U1))))))) -> C67
+ R1 (L1 (R1 (R1 (L1 (L1 (M1 U1)))))) -> C68
+ R1 (L1 (R1 (R1 (L1 (R1 (L1 (M1 U1))))))) -> C69
+ R1 (L1 (R1 (R1 (L1 (R1 (R1 (M1 U1))))))) -> C70
+ R1 (L1 (R1 (R1 (R1 (L1 (L1 (M1 U1))))))) -> C71
+ R1 (L1 (R1 (R1 (R1 (L1 (R1 (M1 U1))))))) -> C72
+ R1 (L1 (R1 (R1 (R1 (R1 (L1 (M1 U1))))))) -> C73
+ R1 (L1 (R1 (R1 (R1 (R1 (R1 (M1 U1))))))) -> C74
+ R1 (R1 (L1 (L1 (L1 (L1 (M1 U1)))))) -> C75
+ R1 (R1 (L1 (L1 (L1 (R1 (L1 (M1 U1))))))) -> C76
+ R1 (R1 (L1 (L1 (L1 (R1 (R1 (M1 U1))))))) -> C77
+ R1 (R1 (L1 (L1 (R1 (L1 (M1 U1)))))) -> C78
+ R1 (R1 (L1 (L1 (R1 (R1 (L1 (M1 U1))))))) -> C79
+ R1 (R1 (L1 (L1 (R1 (R1 (R1 (M1 U1))))))) -> C80
+ R1 (R1 (L1 (R1 (L1 (L1 (M1 U1)))))) -> C81
+ R1 (R1 (L1 (R1 (L1 (R1 (L1 (M1 U1))))))) -> C82
+ R1 (R1 (L1 (R1 (L1 (R1 (R1 (M1 U1))))))) -> C83
+ R1 (R1 (L1 (R1 (R1 (L1 (M1 U1)))))) -> C84
+ R1 (R1 (L1 (R1 (R1 (R1 (L1 (M1 U1))))))) -> C85
+ R1 (R1 (L1 (R1 (R1 (R1 (R1 (M1 U1))))))) -> C86
+ R1 (R1 (R1 (L1 (L1 (L1 (M1 U1)))))) -> C87
+ R1 (R1 (R1 (L1 (L1 (R1 (L1 (M1 U1))))))) -> C88
+ R1 (R1 (R1 (L1 (L1 (R1 (R1 (M1 U1))))))) -> C89
+ R1 (R1 (R1 (L1 (R1 (L1 (M1 U1)))))) -> C90
+ R1 (R1 (R1 (L1 (R1 (R1 (L1 (M1 U1))))))) -> C91
+ R1 (R1 (R1 (L1 (R1 (R1 (R1 (M1 U1))))))) -> C92
+ R1 (R1 (R1 (R1 (L1 (L1 (M1 U1)))))) -> C93
+ R1 (R1 (R1 (R1 (L1 (R1 (L1 (M1 U1))))))) -> C94
+ R1 (R1 (R1 (R1 (L1 (R1 (R1 (M1 U1))))))) -> C95
+ R1 (R1 (R1 (R1 (R1 (L1 (L1 (M1 U1))))))) -> C96
+ R1 (R1 (R1 (R1 (R1 (L1 (R1 (M1 U1))))))) -> C97
+ R1 (R1 (R1 (R1 (R1 (R1 (L1 (M1 U1))))))) -> C98
+ R1 (R1 (R1 (R1 (R1 (R1 (R1 (M1 U1))))))) -> C99
type Rep_BigSum = D1
('MetaData
diff --git a/testsuite/tests/perf/compiler/all.T b/testsuite/tests/perf/compiler/all.T
index a09499915a..230cff5ac8 100644
--- a/testsuite/tests/perf/compiler/all.T
+++ b/testsuite/tests/perf/compiler/all.T
@@ -545,7 +545,7 @@ test('T5642',
# 2014-12-10: 641085256 Improvements in constraints solver
# 2016-04-06: 462677300
- (wordsize(64), 1300685592, 10)])
+ (wordsize(64), 916484672, 10)])
# prev: 1300000000
# 2014-07-17: 1358833928 (general round of updates)
# 2014-08-07: 1402242360 (caused by 1fc60ea)
@@ -558,8 +558,9 @@ test('T5642',
# 2014-12-10: 1282916024 Improvements in constraints solver
# 2015-10-28: 1412808976 Emit Typeable at definition site
# 2015-11-22: 1071915072 Use TypeLits in the metadata encoding
- # 2016-02-08: 950004816 Pattern match checker re-rework
+ # 2016-02-08: 950004816 Pattern match checker re-rework
# 2016-05-12: 1300685592 Make Generic1 poly-kinded
+ # 2016-06-05: 916484672 Refactor derived Generic instances to reduce allocations
],
compile,['-O'])
diff --git a/testsuite/tests/perf/haddock/all.T b/testsuite/tests/perf/haddock/all.T
index 3160a8a1e4..3f4926a8f9 100644
--- a/testsuite/tests/perf/haddock/all.T
+++ b/testsuite/tests/perf/haddock/all.T
@@ -52,7 +52,7 @@ test('haddock.base',
test('haddock.Cabal',
[unless(in_tree_compiler(), skip), req_haddock
,stats_num_field('bytes allocated',
- [(wordsize(64), 11805238152, 5)
+ [(wordsize(64), 10997887320, 5)
# 2012-08-14: 3255435248 (amd64/Linux)
# 2012-08-29: 3324606664 (amd64/Linux, new codegen)
# 2012-10-08: 3373401360 (amd64/Linux)
@@ -81,6 +81,7 @@ test('haddock.Cabal',
# 2016-04-06: 11542374816 (amd64/Linux) - CSE improvements and others
# 2016-04-07: 10963514352 (amd64/Linux) - Revert to what phabricator claims
# 2016-05-22: 11805238152 (amd64/Linux) - Make Generic1 poly-kinded
+ # 2016-06-05: 10997887320 (amd64/Linux) - Refactor derived Generic instances to reduce allocations
,(platform('i386-unknown-mingw32'), 3293415576, 5)
# 2012-10-30: 1733638168 (x86/Windows)
@@ -88,7 +89,7 @@ test('haddock.Cabal',
# 2014-01-28: 1966911336 (x86/Windows)
# 2014-04-24: 2052220292 (x86/Windows)
# 2014-12-01: 3088635556 (x86/Windows)
- # 2015-01-20: 3293415576
+ # 2015-01-20: 3293415576
,(wordsize(32), 6268156056, 5)])
# 2012-08-14: 1648610180 (x86/OSX)