diff options
author | Ben Gamari <bgamari.foss@gmail.com> | 2017-03-03 14:39:00 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2017-03-03 14:39:01 -0500 |
commit | a694cee77b64235b42029fea248453ddf6b17d17 (patch) | |
tree | 1177b386761a624a9db9f2e41753e8061381ff81 /testsuite/tests/roles | |
parent | fa360eabe5a01815f27a09df4a245546ede9210a (diff) | |
download | haskell-a694cee77b64235b42029fea248453ddf6b17d17.tar.gz |
TcTypeable: Try to reuse KindReps
Here we rework the TcTypeable implementation to reuse KindRep bindings
when possible. This is an attempt at minimizing the impact of Typeable
binding generation by reducing the number of bindings that we produce.
It turns out that this produces some pretty reasonable compiler
allocations improvements. It seems to erase most of the increases
initially introduced by TTypeable in the testsuite. Moreover, nofib
shows,
```
-1 s.d. ----- -3.555%
+1 s.d. ----- +1.937%
Average ----- -0.847%
```
Here are a few of the high-scorers (ignore last column, which is for
D3219),
```
veritas
Types 88800920 -18.945% -21.480%
veritas
Tactics 540766744 -27.256% -27.338%
sched
Main 567013384 -4.947% -5.358%
listcompr
Main 532300000 -4.273% -4.572%
listcopy
Main 537785392 -4.382% -4.635%
anna
BaseDefs 1984225032 -10.639% -10.832%
```
as expected, these tend to be modules with either very many or very
large types.
Test Plan: Validate
Reviewers: austin, dfeuer
Subscribers: simonmar, dfeuer, thomie
Differential Revision: https://phabricator.haskell.org/D3166
Diffstat (limited to 'testsuite/tests/roles')
-rw-r--r-- | testsuite/tests/roles/should_compile/Roles1.stderr | 101 | ||||
-rw-r--r-- | testsuite/tests/roles/should_compile/Roles13.stderr | 85 | ||||
-rw-r--r-- | testsuite/tests/roles/should_compile/Roles14.stderr | 15 | ||||
-rw-r--r-- | testsuite/tests/roles/should_compile/Roles2.stderr | 31 | ||||
-rw-r--r-- | testsuite/tests/roles/should_compile/Roles3.stderr | 56 | ||||
-rw-r--r-- | testsuite/tests/roles/should_compile/Roles4.stderr | 33 | ||||
-rw-r--r-- | testsuite/tests/roles/should_compile/T8958.stderr | 66 |
7 files changed, 136 insertions, 251 deletions
diff --git a/testsuite/tests/roles/should_compile/Roles1.stderr b/testsuite/tests/roles/should_compile/Roles1.stderr index 574750ce44..ae4570ab47 100644 --- a/testsuite/tests/roles/should_compile/Roles1.stderr +++ b/testsuite/tests/roles/should_compile/Roles1.stderr @@ -33,12 +33,6 @@ Roles1.$tcT7 (GHC.Types.TrNameS "T7"#) 1 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepVar 0) - (GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep)) Roles1.$tc'K7 = GHC.Types.TyCon 15901479081375327280## @@ -47,14 +41,6 @@ Roles1.$tc'K7 (GHC.Types.TrNameS "'K7"#) 3 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepVar 2) - (GHC.Types.KindRepTyConApp - Roles1.$tcT7 - ((:) - (GHC.Types.KindRepVar 0) - ((:) (GHC.Types.KindRepVar 1) ((:) (GHC.Types.KindRepVar 2) [])))) Roles1.$tcT6 = GHC.Types.TyCon 7244893995195634045## @@ -63,10 +49,6 @@ Roles1.$tcT6 (GHC.Types.TrNameS "T6"#) 1 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepVar 0) - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) Roles1.$tc'K6 = GHC.Types.TyCon 13928703131159360198## @@ -75,10 +57,6 @@ Roles1.$tc'K6 (GHC.Types.TrNameS "'K6"#) 2 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepTyConApp - Roles1.$tcT6 - ((:) (GHC.Types.KindRepVar 0) ((:) (GHC.Types.KindRepVar 1) [])) Roles1.$tcT5 = GHC.Types.TyCon 12033401645911719002## @@ -87,10 +65,6 @@ Roles1.$tcT5 (GHC.Types.TrNameS "T5"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) Roles1.$tc'K5 = GHC.Types.TyCon 5548842497263642061## @@ -99,11 +73,6 @@ Roles1.$tc'K5 (GHC.Types.TrNameS "'K5"#) 1 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepVar 0) - (GHC.Types.KindRepTyConApp - Roles1.$tcT5 ((:) (GHC.Types.KindRepVar 0) [])) Roles1.$tcT4 = GHC.Types.TyCon 15834077582937152787## @@ -112,14 +81,6 @@ Roles1.$tcT4 (GHC.Types.TrNameS "T4"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep)) - (GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep)) Roles1.$tc'K4 = GHC.Types.TyCon 10188453925450404995## @@ -128,13 +89,6 @@ Roles1.$tc'K4 (GHC.Types.TrNameS "'K4"#) 2 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepApp - (GHC.Types.KindRepVar 0) (GHC.Types.KindRepVar 1)) - (GHC.Types.KindRepTyConApp - Roles1.$tcT4 - ((:) (GHC.Types.KindRepVar 0) ((:) (GHC.Types.KindRepVar 1) []))) Roles1.$tcT3 = GHC.Types.TyCon 13341737262627465733## @@ -143,10 +97,6 @@ Roles1.$tcT3 (GHC.Types.TrNameS "T3"#) 1 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepVar 0) - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) Roles1.$tc'K3 = GHC.Types.TyCon 14534968069054730342## @@ -155,10 +105,6 @@ Roles1.$tc'K3 (GHC.Types.TrNameS "'K3"#) 2 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepTyConApp - Roles1.$tcT3 - ((:) (GHC.Types.KindRepVar 0) ((:) (GHC.Types.KindRepVar 1) [])) Roles1.$tcT2 = GHC.Types.TyCon 12900773996789723956## @@ -167,10 +113,6 @@ Roles1.$tcT2 (GHC.Types.TrNameS "T2"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) Roles1.$tc'K2 = GHC.Types.TyCon 11054915488163123841## @@ -179,11 +121,6 @@ Roles1.$tc'K2 (GHC.Types.TrNameS "'K2"#) 1 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepVar 0) - (GHC.Types.KindRepTyConApp - Roles1.$tcT2 ((:) (GHC.Types.KindRepVar 0) [])) Roles1.$tcT1 = GHC.Types.TyCon 13228660854624297872## @@ -192,10 +129,6 @@ Roles1.$tcT1 (GHC.Types.TrNameS "T1"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) Roles1.$tc'K1 = GHC.Types.TyCon 1265606750138351672## @@ -204,11 +137,37 @@ Roles1.$tc'K1 (GHC.Types.TrNameS "'K1"#) 1 $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepVar 1 +$krep [InlPrag=[~]] = GHC.Types.KindRepVar 0 +$krep [InlPrag=[~]] = GHC.Types.KindRepVar 0 +$krep [InlPrag=[~]] = GHC.Types.KindRepVar 1 +$krep [InlPrag=[~]] = GHC.Types.KindRepVar 2 +$krep [InlPrag=[~]] = GHC.Types.KindRepApp $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp + Roles1.$tcT7 ((:) $krep ((:) $krep ((:) $krep []))) +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp Roles1.$tcT6 ((:) $krep ((:) $krep [])) +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp Roles1.$tcT4 ((:) $krep ((:) $krep [])) +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp Roles1.$tcT3 ((:) $krep ((:) $krep [])) +$krep [InlPrag=[~]] = GHC.Types.KindRepTYPE GHC.Types.LiftedRep +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp Roles1.$tcT5 ((:) $krep []) +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp Roles1.$tcT2 ((:) $krep []) $krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepVar 0) - (GHC.Types.KindRepTyConApp - Roles1.$tcT1 ((:) (GHC.Types.KindRepVar 0) [])) + = GHC.Types.KindRepTyConApp Roles1.$tcT1 ((:) $krep []) Roles1.$trModule = GHC.Types.Module (GHC.Types.TrNameS "main"#) (GHC.Types.TrNameS "Roles1"#) diff --git a/testsuite/tests/roles/should_compile/Roles13.stderr b/testsuite/tests/roles/should_compile/Roles13.stderr index 1ea545504b..6a5e31d9c5 100644 --- a/testsuite/tests/roles/should_compile/Roles13.stderr +++ b/testsuite/tests/roles/should_compile/Roles13.stderr @@ -1,7 +1,7 @@ ==================== Tidy Core ==================== Result size of Tidy Core - = {terms: 114, types: 43, coercions: 5, joins: 0/0} + = {terms: 105, types: 40, coercions: 5, joins: 0/0} -- RHS size: {terms: 2, types: 2, coercions: 0, joins: 0/0} convert1 :: Wrap Age -> Wrap Age @@ -41,10 +41,27 @@ Roles13.$trModule :: GHC.Types.Module [GblId, Caf=NoCafRefs] Roles13.$trModule = GHC.Types.Module $trModule2 $trModule4 --- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} +-- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0} $krep :: GHC.Types.KindRep +[GblId] +$krep + = GHC.Types.KindRepTyConApp + GHC.Types.$tcInt (GHC.Types.[] @ GHC.Types.KindRep) + +-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} +$krep1 :: GHC.Types.KindRep +[GblId, Caf=NoCafRefs] +$krep1 = GHC.Types.KindRepTYPE GHC.Types.LiftedRep + +-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} +$krep2 :: GHC.Types.KindRep [GblId, Caf=NoCafRefs] -$krep = GHC.Types.KindRepTYPE GHC.Types.LiftedRep +$krep2 = GHC.Types.KindRepFun $krep1 $krep1 + +-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} +$krep3 :: GHC.Types.KindRep +[GblId, Caf=NoCafRefs] +$krep3 = GHC.Types.KindRepVar 0# -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} $tcAge1 :: GHC.Prim.Addr# @@ -66,26 +83,19 @@ Roles13.$tcAge Roles13.$trModule $tcAge2 0# - $krep - --- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0} -$krep1 :: GHC.Types.KindRep -[GblId] -$krep1 - = GHC.Types.KindRepTyConApp - GHC.Types.$tcInt (GHC.Types.[] @ GHC.Types.KindRep) + $krep1 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0} -$krep2 :: GHC.Types.KindRep +$krep4 :: GHC.Types.KindRep [GblId, Caf=NoCafRefs] -$krep2 +$krep4 = GHC.Types.KindRepTyConApp Roles13.$tcAge (GHC.Types.[] @ GHC.Types.KindRep) -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -$krep3 :: GHC.Types.KindRep +$krep5 :: GHC.Types.KindRep [GblId] -$krep3 = GHC.Types.KindRepFun $krep1 $krep2 +$krep5 = GHC.Types.KindRepFun $krep $krep4 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} $tc'MkAge1 :: GHC.Prim.Addr# @@ -107,22 +117,7 @@ Roles13.$tc'MkAge Roles13.$trModule $tc'MkAge2 0# - $krep3 - --- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -$krep4 :: GHC.Types.KindRep -[GblId, Caf=NoCafRefs] -$krep4 = GHC.Types.KindRepTYPE GHC.Types.LiftedRep - --- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -$krep5 :: GHC.Types.KindRep -[GblId, Caf=NoCafRefs] -$krep5 = GHC.Types.KindRepTYPE GHC.Types.LiftedRep - --- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -$krep6 :: GHC.Types.KindRep -[GblId, Caf=NoCafRefs] -$krep6 = GHC.Types.KindRepFun $krep4 $krep5 + $krep5 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} $tcWrap1 :: GHC.Prim.Addr# @@ -144,34 +139,24 @@ Roles13.$tcWrap Roles13.$trModule $tcWrap2 0# - $krep6 - --- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -$krep7 :: GHC.Types.KindRep -[GblId, Caf=NoCafRefs] -$krep7 = GHC.Types.KindRepVar 0# - --- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -$krep8 :: GHC.Types.KindRep -[GblId, Caf=NoCafRefs] -$krep8 = GHC.Types.KindRepVar 0# + $krep2 -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0} -$krep9 :: [GHC.Types.KindRep] +$krep6 :: [GHC.Types.KindRep] [GblId, Caf=NoCafRefs] -$krep9 +$krep6 = GHC.Types.: - @ GHC.Types.KindRep $krep8 (GHC.Types.[] @ GHC.Types.KindRep) + @ GHC.Types.KindRep $krep3 (GHC.Types.[] @ GHC.Types.KindRep) -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -$krep10 :: GHC.Types.KindRep +$krep7 :: GHC.Types.KindRep [GblId, Caf=NoCafRefs] -$krep10 = GHC.Types.KindRepTyConApp Roles13.$tcWrap $krep9 +$krep7 = GHC.Types.KindRepTyConApp Roles13.$tcWrap $krep6 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -$krep11 :: GHC.Types.KindRep +$krep8 :: GHC.Types.KindRep [GblId, Caf=NoCafRefs] -$krep11 = GHC.Types.KindRepFun $krep7 $krep10 +$krep8 = GHC.Types.KindRepFun $krep3 $krep7 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} $tc'MkWrap1 :: GHC.Prim.Addr# @@ -193,7 +178,7 @@ Roles13.$tc'MkWrap Roles13.$trModule $tc'MkWrap2 1# - $krep11 + $krep8 diff --git a/testsuite/tests/roles/should_compile/Roles14.stderr b/testsuite/tests/roles/should_compile/Roles14.stderr index 15f61ce9fd..08ca28fecc 100644 --- a/testsuite/tests/roles/should_compile/Roles14.stderr +++ b/testsuite/tests/roles/should_compile/Roles14.stderr @@ -20,10 +20,6 @@ Roles12.$tcC2 (GHC.Types.TrNameS "C2"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTyConApp GHC.Types.$tcConstraint []) Roles12.$tc'C:C2 = GHC.Types.TyCon 7087988437584478859## @@ -32,12 +28,13 @@ Roles12.$tc'C:C2 (GHC.Types.TrNameS "'C:C2"#) 1 $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepVar 0 +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepTYPE GHC.Types.LiftedRep $krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepFun - (GHC.Types.KindRepVar 0) (GHC.Types.KindRepVar 0)) - (GHC.Types.KindRepTyConApp - Roles12.$tcC2 ((:) (GHC.Types.KindRepVar 0) [])) + = GHC.Types.KindRepTyConApp Roles12.$tcC2 ((:) $krep []) Roles12.$trModule = GHC.Types.Module (GHC.Types.TrNameS "main"#) (GHC.Types.TrNameS "Roles12"#) diff --git a/testsuite/tests/roles/should_compile/Roles2.stderr b/testsuite/tests/roles/should_compile/Roles2.stderr index 39ca1ea0a8..b96d17330a 100644 --- a/testsuite/tests/roles/should_compile/Roles2.stderr +++ b/testsuite/tests/roles/should_compile/Roles2.stderr @@ -19,10 +19,6 @@ Roles2.$tcT2 (GHC.Types.TrNameS "T2"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) Roles2.$tc'K2 = GHC.Types.TyCon 17395957229042313563## @@ -31,12 +27,6 @@ Roles2.$tc'K2 (GHC.Types.TrNameS "'K2"#) 1 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTyConApp - GHC.Ptr.$tcFunPtr ((:) (GHC.Types.KindRepVar 0) [])) - (GHC.Types.KindRepTyConApp - Roles2.$tcT2 ((:) (GHC.Types.KindRepVar 0) [])) Roles2.$tcT1 = GHC.Types.TyCon 10310640733256438505## @@ -45,10 +35,6 @@ Roles2.$tcT1 (GHC.Types.TrNameS "T1"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) Roles2.$tc'K1 = GHC.Types.TyCon 16530009231990968394## @@ -57,12 +43,19 @@ Roles2.$tc'K1 (GHC.Types.TrNameS "'K1"#) 1 $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepVar 0 +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepTYPE GHC.Types.LiftedRep +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp GHC.Ptr.$tcFunPtr ((:) $krep []) +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp Roles2.$tcT2 ((:) $krep []) +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp GHC.Types.$tcIO ((:) $krep []) $krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTyConApp - GHC.Types.$tcIO ((:) (GHC.Types.KindRepVar 0) [])) - (GHC.Types.KindRepTyConApp - Roles2.$tcT1 ((:) (GHC.Types.KindRepVar 0) [])) + = GHC.Types.KindRepTyConApp Roles2.$tcT1 ((:) $krep []) Roles2.$trModule = GHC.Types.Module (GHC.Types.TrNameS "main"#) (GHC.Types.TrNameS "Roles2"#) diff --git a/testsuite/tests/roles/should_compile/Roles3.stderr b/testsuite/tests/roles/should_compile/Roles3.stderr index af9bc168c7..7f9f1a39d9 100644 --- a/testsuite/tests/roles/should_compile/Roles3.stderr +++ b/testsuite/tests/roles/should_compile/Roles3.stderr @@ -41,12 +41,6 @@ Roles3.$tcC4 (GHC.Types.TrNameS "C4"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTyConApp GHC.Types.$tcConstraint [])) Roles3.$tcC3 = GHC.Types.TyCon 5076086601454991970## @@ -55,12 +49,6 @@ Roles3.$tcC3 (GHC.Types.TrNameS "C3"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTyConApp GHC.Types.$tcConstraint [])) Roles3.$tcC2 = GHC.Types.TyCon 7902873224172523979## @@ -69,12 +57,6 @@ Roles3.$tcC2 (GHC.Types.TrNameS "C2"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTyConApp GHC.Types.$tcConstraint [])) Roles3.$tc'C:C2 = GHC.Types.TyCon 11218882737915989529## @@ -83,19 +65,6 @@ Roles3.$tc'C:C2 (GHC.Types.TrNameS "'C:C2"#) 2 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepFun - (GHC.Types.KindRepTyConApp - Data.Type.Equality.$tc~ - ((:) - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - ((:) (GHC.Types.KindRepVar 0) ((:) (GHC.Types.KindRepVar 1) [])))) - (GHC.Types.KindRepFun - (GHC.Types.KindRepVar 0) (GHC.Types.KindRepVar 1))) - (GHC.Types.KindRepTyConApp - Roles3.$tcC2 - ((:) (GHC.Types.KindRepVar 0) ((:) (GHC.Types.KindRepVar 1) []))) Roles3.$tcC1 = GHC.Types.TyCon 11013585501375994163## @@ -104,10 +73,6 @@ Roles3.$tcC1 (GHC.Types.TrNameS "C1"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTyConApp GHC.Types.$tcConstraint []) Roles3.$tc'C:C1 = GHC.Types.TyCon 4508088879886988796## @@ -116,12 +81,23 @@ Roles3.$tc'C:C1 (GHC.Types.TrNameS "'C:C1"#) 1 $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepVar 0 +$krep [InlPrag=[~]] = GHC.Types.KindRepVar 1 +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp + Data.Type.Equality.$tc~ ((:) $krep ((:) $krep ((:) $krep []))) +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp Roles3.$tcC2 ((:) $krep ((:) $krep [])) +$krep [InlPrag=[~]] = GHC.Types.KindRepTYPE GHC.Types.LiftedRep $krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepFun - (GHC.Types.KindRepVar 0) (GHC.Types.KindRepVar 0)) - (GHC.Types.KindRepTyConApp - Roles3.$tcC1 ((:) (GHC.Types.KindRepVar 0) [])) + = GHC.Types.KindRepTyConApp Roles3.$tcC1 ((:) $krep []) Roles3.$trModule = GHC.Types.Module (GHC.Types.TrNameS "main"#) (GHC.Types.TrNameS "Roles3"#) diff --git a/testsuite/tests/roles/should_compile/Roles4.stderr b/testsuite/tests/roles/should_compile/Roles4.stderr index 389379bad2..205a4d5714 100644 --- a/testsuite/tests/roles/should_compile/Roles4.stderr +++ b/testsuite/tests/roles/should_compile/Roles4.stderr @@ -26,10 +26,6 @@ Roles4.$tcC3 (GHC.Types.TrNameS "C3"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTyConApp GHC.Types.$tcConstraint []) Roles4.$tc'C:C3 = GHC.Types.TyCon 3133378316178104365## @@ -38,14 +34,6 @@ Roles4.$tc'C:C3 (GHC.Types.TrNameS "'C:C3"#) 1 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepFun - (GHC.Types.KindRepVar 0) - (GHC.Types.KindRepTyConApp - GHC.Types.$tc[] ((:) (GHC.Types.KindRepVar 0) []))) - (GHC.Types.KindRepTyConApp - Roles4.$tcC3 ((:) (GHC.Types.KindRepVar 0) [])) Roles4.$tcC1 = GHC.Types.TyCon 13392243382482428602## @@ -54,10 +42,6 @@ Roles4.$tcC1 (GHC.Types.TrNameS "C1"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTyConApp GHC.Types.$tcConstraint []) Roles4.$tc'C:C1 = GHC.Types.TyCon 3870707671502302648## @@ -66,12 +50,19 @@ Roles4.$tc'C:C1 (GHC.Types.TrNameS "'C:C1"#) 1 $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepVar 0 +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepTYPE GHC.Types.LiftedRep +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp GHC.Types.$tc[] ((:) $krep []) +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp Roles4.$tcC3 ((:) $krep []) $krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepFun - (GHC.Types.KindRepVar 0) (GHC.Types.KindRepVar 0)) - (GHC.Types.KindRepTyConApp - Roles4.$tcC1 ((:) (GHC.Types.KindRepVar 0) [])) + = GHC.Types.KindRepTyConApp Roles4.$tcC1 ((:) $krep []) Roles4.$trModule = GHC.Types.Module (GHC.Types.TrNameS "main"#) (GHC.Types.TrNameS "Roles4"#) diff --git a/testsuite/tests/roles/should_compile/T8958.stderr b/testsuite/tests/roles/should_compile/T8958.stderr index 5939c69954..22cc6ca7b7 100644 --- a/testsuite/tests/roles/should_compile/T8958.stderr +++ b/testsuite/tests/roles/should_compile/T8958.stderr @@ -28,12 +28,6 @@ T8958.$tcMap (GHC.Types.TrNameS "Map"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep)) T8958.$tc'MkMap = GHC.Types.TyCon 2942839876828444488## @@ -42,24 +36,6 @@ T8958.$tc'MkMap (GHC.Types.TrNameS "'MkMap"#) 2 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTyConApp - GHC.Types.$tc[] - ((:) @ GHC.Types.KindRep - (GHC.Types.KindRepTyConApp - GHC.Tuple.$tc(,) - ((:) @ GHC.Types.KindRep - (GHC.Types.KindRepVar 0) - ((:) @ GHC.Types.KindRep - (GHC.Types.KindRepVar 1) [] @ GHC.Types.KindRep))) - [] @ GHC.Types.KindRep)) - (GHC.Types.KindRepTyConApp - T8958.$tcMap - ((:) @ GHC.Types.KindRep - (GHC.Types.KindRepVar 0) - ((:) @ GHC.Types.KindRep - (GHC.Types.KindRepVar 1) [] @ GHC.Types.KindRep))) T8958.$tcRepresentational = GHC.Types.TyCon 12809567151893673426## @@ -68,11 +44,6 @@ T8958.$tcRepresentational (GHC.Types.TrNameS "Representational"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTyConApp - GHC.Types.$tcConstraint [] @ GHC.Types.KindRep) T8958.$tc'C:Representational = GHC.Types.TyCon 2358772282532242424## @@ -81,11 +52,6 @@ T8958.$tc'C:Representational (GHC.Types.TrNameS "'C:Representational"#) 1 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepTyConApp - T8958.$tcRepresentational - ((:) @ GHC.Types.KindRep - (GHC.Types.KindRepVar 0) [] @ GHC.Types.KindRep) T8958.$tcNominal = GHC.Types.TyCon 12224997609886144634## @@ -94,11 +60,6 @@ T8958.$tcNominal (GHC.Types.TrNameS "Nominal"#) 0 $krep -$krep [InlPrag=[~]] - = GHC.Types.KindRepFun - (GHC.Types.KindRepTYPE GHC.Types.LiftedRep) - (GHC.Types.KindRepTyConApp - GHC.Types.$tcConstraint [] @ GHC.Types.KindRep) T8958.$tc'C:Nominal = GHC.Types.TyCon 10562260635335201742## @@ -107,11 +68,34 @@ T8958.$tc'C:Nominal (GHC.Types.TrNameS "'C:Nominal"#) 1 $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepVar 0 +$krep [InlPrag=[~]] = GHC.Types.KindRepVar 1 +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep +$krep [InlPrag=[~]] = GHC.Types.KindRepFun $krep $krep $krep [InlPrag=[~]] = GHC.Types.KindRepTyConApp - T8958.$tcNominal + GHC.Tuple.$tc(,) + ((:) @ GHC.Types.KindRep + $krep ((:) @ GHC.Types.KindRep $krep [] @ GHC.Types.KindRep)) +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp + T8958.$tcMap ((:) @ GHC.Types.KindRep - (GHC.Types.KindRepVar 0) [] @ GHC.Types.KindRep) + $krep ((:) @ GHC.Types.KindRep $krep [] @ GHC.Types.KindRep)) +$krep [InlPrag=[~]] = GHC.Types.KindRepTYPE GHC.Types.LiftedRep +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp + GHC.Types.$tc[] + ((:) @ GHC.Types.KindRep $krep [] @ GHC.Types.KindRep) +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp + T8958.$tcRepresentational + ((:) @ GHC.Types.KindRep $krep [] @ GHC.Types.KindRep) +$krep [InlPrag=[~]] + = GHC.Types.KindRepTyConApp + T8958.$tcNominal + ((:) @ GHC.Types.KindRep $krep [] @ GHC.Types.KindRep) T8958.$trModule = GHC.Types.Module (GHC.Types.TrNameS "main"#) (GHC.Types.TrNameS "T8958"#) |