[Git][ghc/ghc][wip/forall-vis-coercions] make necessary testsuite changes

Matthew Craven (@clyring) gitlab at gitlab.haskell.org
Fri May 19 23:03:00 UTC 2023



Matthew Craven pushed to branch wip/forall-vis-coercions at Glasgow Haskell Compiler / GHC


Commits:
ebc9f2bf by Matthew Craven at 2023-05-19T19:01:58-04:00
make necessary testsuite changes

- - - - -


7 changed files:

- testsuite/tests/cpranal/should_compile/T18174.stderr
- testsuite/tests/cpranal/should_compile/T18401.stderr
- testsuite/tests/pmcheck/should_compile/T11195.hs
- testsuite/tests/simplCore/should_compile/OpaqueNoCastWW.stderr
- testsuite/tests/simplCore/should_compile/T8331.stderr
- testsuite/tests/stranal/should_compile/T15627.stderr
- testsuite/tests/stranal/should_compile/T18982.stderr


Changes:

=====================================
testsuite/tests/cpranal/should_compile/T18174.stderr
=====================================
@@ -1,23 +1,18 @@
 
 ==================== Tidy Core ====================
-Result size of Tidy Core = {terms: 464, types: 475, coercions: 6, joins: 0/3}
+Result size of Tidy Core = {terms: 467, types: 458, coercions: 6, joins: 0/3}
 
 -- RHS size: {terms: 8, types: 7, coercions: 0, joins: 0/0}
 T18174.$WMkT :: Int %1 -> (Int, Int) %1 -> T
-T18174.$WMkT = \ (conrep_aU0 :: Int) (conrep_aU1 :: (Int, Int)) -> case conrep_aU1 of conrep_X0 { __DEFAULT -> T18174.MkT conrep_aU0 conrep_X0 }
+T18174.$WMkT = \ (conrep_aXh :: Int) (conrep1_aXi :: (Int, Int)) -> case conrep1_aXi of conrep2_aXi { __DEFAULT -> T18174.MkT conrep_aXh conrep2_aXi }
 
--- RHS size: {terms: 5, types: 10, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 8, types: 15, coercions: 0, joins: 0/0}
 T18174.$wstrictField :: Int -> (Int, Int) -> (# Int, (Int, Int) #)
-T18174.$wstrictField
-  = \ (ww_s18W :: Int)
-      (ww1_s18X
-         :: (Int, Int)
-         Unf=OtherCon []) ->
-      (# ww_s18W, ww1_s18X #)
+T18174.$wstrictField = \ (ww_s1cs :: Int) (ww1_s1ct :: (Int, Int)) -> case ww1_s1ct of ww2_X1 { (ipv_s1ex, ipv1_s1ey) -> (# ww_s1cs, ww2_X1 #) }
 
 -- RHS size: {terms: 12, types: 21, coercions: 0, joins: 0/0}
 strictField :: T -> (Int, (Int, Int))
-strictField = \ (ds_s18U :: T) -> case ds_s18U of { MkT ww_s18W ww1_s18X -> case T18174.$wstrictField ww_s18W ww1_s18X of { (# ww2_s1aJ, ww3_s1aK #) -> (ww2_s1aJ, ww3_s1aK) } }
+strictField = \ (ds_s1cq :: T) -> case ds_s1cq of { MkT ww_s1cs ww1_s1ct -> case T18174.$wstrictField ww_s1cs ww1_s1ct of { (# ww2_s1ef, ww3_s1eg #) -> (ww2_s1ef, ww3_s1eg) } }
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 T18174.$trModule4 :: GHC.Prim.Addr#
@@ -40,20 +35,20 @@ T18174.$trModule :: GHC.Types.Module
 T18174.$trModule = GHC.Types.Module T18174.$trModule3 T18174.$trModule1
 
 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
-$krep_r1c2 :: GHC.Types.KindRep
-$krep_r1c2 = GHC.Types.KindRepTyConApp GHC.Types.$tcInt (GHC.Types.[] @GHC.Types.KindRep)
+$krep_r1fR :: GHC.Types.KindRep
+$krep_r1fR = GHC.Types.KindRepTyConApp GHC.Types.$tcInt (GHC.Types.[] @GHC.Types.KindRep)
 
 -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
-$krep1_r1c3 :: [GHC.Types.KindRep]
-$krep1_r1c3 = GHC.Types.: @GHC.Types.KindRep $krep_r1c2 (GHC.Types.[] @GHC.Types.KindRep)
+$krep1_r1fS :: [GHC.Types.KindRep]
+$krep1_r1fS = GHC.Types.: @GHC.Types.KindRep $krep_r1fR (GHC.Types.[] @GHC.Types.KindRep)
 
 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
-$krep2_r1c4 :: [GHC.Types.KindRep]
-$krep2_r1c4 = GHC.Types.: @GHC.Types.KindRep $krep_r1c2 $krep1_r1c3
+$krep2_r1fT :: [GHC.Types.KindRep]
+$krep2_r1fT = GHC.Types.: @GHC.Types.KindRep $krep_r1fR $krep1_r1fS
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep3_r1c5 :: GHC.Types.KindRep
-$krep3_r1c5 = GHC.Types.KindRepTyConApp GHC.Tuple.$tc(,) $krep2_r1c4
+$krep3_r1fU :: GHC.Types.KindRep
+$krep3_r1fU = GHC.Types.KindRepTyConApp GHC.Tuple.Prim.$tcTuple2 $krep2_r1fT
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 T18174.$tcT2 :: GHC.Prim.Addr#
@@ -65,19 +60,19 @@ T18174.$tcT1 = GHC.Types.TrNameS T18174.$tcT2
 
 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
 T18174.$tcT :: GHC.Types.TyCon
-T18174.$tcT = GHC.Types.TyCon 10767449832801551323## 11558512111670031614## T18174.$trModule T18174.$tcT1 0# GHC.Types.krep$*
+T18174.$tcT = GHC.Types.TyCon 10767449832801551323#Word64 11558512111670031614#Word64 T18174.$trModule T18174.$tcT1 0# GHC.Types.krep$*
 
 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
-$krep4_r1c6 :: GHC.Types.KindRep
-$krep4_r1c6 = GHC.Types.KindRepTyConApp T18174.$tcT (GHC.Types.[] @GHC.Types.KindRep)
+$krep4_r1fV :: GHC.Types.KindRep
+$krep4_r1fV = GHC.Types.KindRepTyConApp T18174.$tcT (GHC.Types.[] @GHC.Types.KindRep)
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep5_r1c7 :: GHC.Types.KindRep
-$krep5_r1c7 = GHC.Types.KindRepFun $krep3_r1c5 $krep4_r1c6
+$krep5_r1fW :: GHC.Types.KindRep
+$krep5_r1fW = GHC.Types.KindRepFun $krep3_r1fU $krep4_r1fV
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 T18174.$tc'MkT1 :: GHC.Types.KindRep
-T18174.$tc'MkT1 = GHC.Types.KindRepFun $krep_r1c2 $krep5_r1c7
+T18174.$tc'MkT1 = GHC.Types.KindRepFun $krep_r1fR $krep5_r1fW
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 T18174.$tc'MkT3 :: GHC.Prim.Addr#
@@ -89,60 +84,60 @@ T18174.$tc'MkT2 = GHC.Types.TrNameS T18174.$tc'MkT3
 
 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
 T18174.$tc'MkT :: GHC.Types.TyCon
-T18174.$tc'MkT = GHC.Types.TyCon 15126196523434762667## 13148007393547580468## T18174.$trModule T18174.$tc'MkT2 0# T18174.$tc'MkT1
+T18174.$tc'MkT = GHC.Types.TyCon 15126196523434762667#Word64 13148007393547580468#Word64 T18174.$trModule T18174.$tc'MkT2 0# T18174.$tc'MkT1
 
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
-lvl_r1c8 :: Int
-lvl_r1c8 = GHC.Types.I# 1#
+lvl_r1fX :: Int
+lvl_r1fX = GHC.Types.I# 1#
 
 Rec {
--- RHS size: {terms: 38, types: 38, coercions: 0, joins: 0/1}
-T18174.$wfac3 :: forall {a}. GHC.Prim.Int# -> a -> (# a, Int #)
+-- RHS size: {terms: 38, types: 37, coercions: 0, joins: 0/1}
+T18174.$wfac3 :: forall a. GHC.Prim.Int# -> a -> (# a, Int #)
 T18174.$wfac3
-  = \ (@a_s196) (ww_s199 :: GHC.Prim.Int#) (s_s19b :: a_s196) ->
-      case GHC.Prim.<# ww_s199 2# of {
+  = \ (@a_s1cC) (ww_s1cF :: GHC.Prim.Int#) (s_s1cH :: a_s1cC) ->
+      case GHC.Prim.<# ww_s1cF 2# of {
         __DEFAULT ->
           let {
-            ds_s18k :: (a_s196, Int)
-            ds_s18k = case T18174.$wfac3 @a_s196 (GHC.Prim.-# ww_s199 1#) s_s19b of { (# ww1_s1aM, ww2_s1aN #) -> (ww1_s1aM, ww2_s1aN) } } in
-          (# case ds_s18k of { (s'_aYW, n'_aYX) -> s'_aYW }, case ds_s18k of { (s'_aYW, n'_aYX) -> case n'_aYX of { GHC.Types.I# ww1_s193 -> GHC.Types.I# (GHC.Prim.*# ww1_s193 ww1_s193) } } #);
-        1# -> (# s_s19b, lvl_r1c8 #)
+            ds_s1bj :: (a_s1cC, Int)
+            ds_s1bj = case T18174.$wfac3 @a_s1cC (GHC.Prim.-# ww_s1cF 1#) s_s1cH of { (# ww1_s1ei, ww2_s1ej #) -> (ww1_s1ei, ww2_s1ej) } } in
+          (# case ds_s1bj of { (s'_a12d, n'_a12e) -> s'_a12d }, case ds_s1bj of { (s'_a12d, n'_a12e) -> case n'_a12e of { GHC.Types.I# ww1_s1cz -> GHC.Types.I# (GHC.Prim.*# ww1_s1cz ww1_s1cz) } } #);
+        1# -> (# s_s1cH, lvl_r1fX #)
       }
 end Rec }
 
--- RHS size: {terms: 14, types: 16, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 14, types: 15, coercions: 0, joins: 0/0}
 fac3 :: forall a. Int -> a -> (a, Int)
-fac3 = \ (@a_s196) (n_s197 :: Int) (s_s19b :: a_s196) -> case n_s197 of { GHC.Types.I# ww_s199 -> case T18174.$wfac3 @a_s196 ww_s199 s_s19b of { (# ww1_s1aM, ww2_s1aN #) -> (ww1_s1aM, ww2_s1aN) } }
+fac3 = \ (@a_s1cC) (n_s1cD :: Int) (s_s1cH :: a_s1cC) -> case n_s1cD of { GHC.Types.I# ww_s1cF -> case T18174.$wfac3 @a_s1cC ww_s1cF s_s1cH of { (# ww1_s1ei, ww2_s1ej #) -> (ww1_s1ei, ww2_s1ej) } }
 
 Rec {
--- RHS size: {terms: 24, types: 21, coercions: 0, joins: 0/0}
-T18174.$wfac2 :: forall {a}. GHC.Prim.Int# -> a -> (# a, Int #)
+-- RHS size: {terms: 24, types: 20, coercions: 0, joins: 0/0}
+T18174.$wfac2 :: forall a. GHC.Prim.Int# -> a -> (# a, Int #)
 T18174.$wfac2
-  = \ (@a_s19g) (ww_s19j :: GHC.Prim.Int#) (s_s19l :: a_s19g) ->
-      case GHC.Prim.<# ww_s19j 2# of {
-        __DEFAULT -> case T18174.$wfac2 @a_s19g (GHC.Prim.-# ww_s19j 1#) s_s19l of { (# ww1_s1aP, ww2_s1aQ #) -> (# ww1_s1aP, GHC.Num.$fNumInt_$c* ww2_s1aQ ww2_s1aQ #) };
-        1# -> (# s_s19l, lvl_r1c8 #)
+  = \ (@a_s1cM) (ww_s1cP :: GHC.Prim.Int#) (s_s1cR :: a_s1cM) ->
+      case GHC.Prim.<# ww_s1cP 2# of {
+        __DEFAULT -> case T18174.$wfac2 @a_s1cM (GHC.Prim.-# ww_s1cP 1#) s_s1cR of { (# ww1_s1el, ww2_s1em #) -> (# ww1_s1el, GHC.Num.$fNumInt_$c* ww2_s1em ww2_s1em #) };
+        1# -> (# s_s1cR, lvl_r1fX #)
       }
 end Rec }
 
--- RHS size: {terms: 14, types: 16, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 14, types: 15, coercions: 0, joins: 0/0}
 fac2 :: forall a. Int -> a -> (a, Int)
-fac2 = \ (@a_s19g) (n_s19h :: Int) (s_s19l :: a_s19g) -> case n_s19h of { GHC.Types.I# ww_s19j -> case T18174.$wfac2 @a_s19g ww_s19j s_s19l of { (# ww1_s1aP, ww2_s1aQ #) -> (ww1_s1aP, ww2_s1aQ) } }
+fac2 = \ (@a_s1cM) (n_s1cN :: Int) (s_s1cR :: a_s1cM) -> case n_s1cN of { GHC.Types.I# ww_s1cP -> case T18174.$wfac2 @a_s1cM ww_s1cP s_s1cR of { (# ww1_s1el, ww2_s1em #) -> (ww1_s1el, ww2_s1em) } }
 
 Rec {
--- RHS size: {terms: 24, types: 21, coercions: 0, joins: 0/0}
-T18174.$wfac1 :: forall {a}. GHC.Prim.Int# -> a -> (# a, GHC.Prim.Int# #)
+-- RHS size: {terms: 24, types: 20, coercions: 0, joins: 0/0}
+T18174.$wfac1 :: forall a. GHC.Prim.Int# -> a -> (# a, GHC.Prim.Int# #)
 T18174.$wfac1
-  = \ (@a_s19q) (ww_s19t :: GHC.Prim.Int#) (s_s19v :: a_s19q) ->
-      case GHC.Prim.<# ww_s19t 2# of {
-        __DEFAULT -> case T18174.$wfac1 @a_s19q (GHC.Prim.-# ww_s19t 1#) s_s19v of { (# ww1_s19y, ww2_s1aS #) -> (# ww1_s19y, GHC.Prim.*# ww_s19t ww2_s1aS #) };
-        1# -> (# s_s19v, 1# #)
+  = \ (@a_s1cW) (ww_s1cZ :: GHC.Prim.Int#) (s_s1d1 :: a_s1cW) ->
+      case GHC.Prim.<# ww_s1cZ 2# of {
+        __DEFAULT -> case T18174.$wfac1 @a_s1cW (GHC.Prim.-# ww_s1cZ 1#) s_s1d1 of { (# ww1_s1d4, ww2_s1eo #) -> (# ww1_s1d4, GHC.Prim.*# ww_s1cZ ww2_s1eo #) };
+        1# -> (# s_s1d1, 1# #)
       }
 end Rec }
 
--- RHS size: {terms: 15, types: 16, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 15, types: 15, coercions: 0, joins: 0/0}
 fac1 :: forall a. Int -> a -> (a, Int)
-fac1 = \ (@a_s19q) (n_s19r :: Int) (s_s19v :: a_s19q) -> case n_s19r of { GHC.Types.I# ww_s19t -> case T18174.$wfac1 @a_s19q ww_s19t s_s19v of { (# ww1_s19y, ww2_s1aS #) -> (ww1_s19y, GHC.Types.I# ww2_s1aS) } }
+fac1 = \ (@a_s1cW) (n_s1cX :: Int) (s_s1d1 :: a_s1cW) -> case n_s1cX of { GHC.Types.I# ww_s1cZ -> case T18174.$wfac1 @a_s1cW ww_s1cZ s_s1d1 of { (# ww1_s1d4, ww2_s1eo #) -> (ww1_s1d4, GHC.Types.I# ww2_s1eo) } }
 
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
 T18174.h5 :: Int
@@ -151,51 +146,51 @@ T18174.h5 = GHC.Types.I# 0#
 -- RHS size: {terms: 37, types: 15, coercions: 0, joins: 0/1}
 T18174.$wg2 :: GHC.Prim.Int# -> GHC.Prim.Int# -> (# GHC.Prim.Int#, Int #)
 T18174.$wg2
-  = \ (ww_s19G :: GHC.Prim.Int#) (ww1_s19K :: GHC.Prim.Int#) ->
-      case ww1_s19K of ds_X2 {
+  = \ (ww_s1dc :: GHC.Prim.Int#) (ww1_s1dg :: GHC.Prim.Int#) ->
+      case ww1_s1dg of ds_X2 {
         __DEFAULT ->
-          (# GHC.Prim.*# 2# ww_s19G,
+          (# GHC.Prim.*# 2# ww_s1dc,
              case ds_X2 of wild_X3 {
                __DEFAULT ->
                  let {
-                   c1#_a17n :: GHC.Prim.Int#
-                   c1#_a17n = GHC.Prim.andI# 1# (GHC.Prim.<# wild_X3 0#) } in
-                 case GHC.Prim.quotInt# (GHC.Prim.-# 2# c1#_a17n) wild_X3 of wild1_a17o { __DEFAULT -> GHC.Types.I# (GHC.Prim.-# wild1_a17o c1#_a17n) };
+                   c1#_a1co :: GHC.Prim.Int#
+                   c1#_a1co = GHC.Prim.andI# 1# (GHC.Prim.<# wild_X3 0#) } in
+                 case GHC.Prim.-# (GHC.Prim.quotInt# (GHC.Prim.-# 2# c1#_a1co) wild_X3) c1#_a1co of ds2_a1aa { __DEFAULT -> GHC.Types.I# ds2_a1aa };
                0# -> GHC.Real.divZeroError @Int
              } #);
-        1# -> (# GHC.Prim.+# 2# ww_s19G, T18174.h5 #)
+        1# -> (# GHC.Prim.+# 2# ww_s1dc, T18174.h5 #)
       }
 
 -- RHS size: {terms: 30, types: 19, coercions: 0, joins: 0/0}
 T18174.$wh2 :: GHC.Prim.Int# -> Int
 T18174.$wh2
-  = \ (ww_s19W :: GHC.Prim.Int#) ->
-      case ww_s19W of ds_X2 {
+  = \ (ww_s1ds :: GHC.Prim.Int#) ->
+      case ww_s1ds of ds_X2 {
         __DEFAULT ->
           case GHC.Prim.remInt# ds_X2 2# of {
-            __DEFAULT -> case T18174.$wg2 ds_X2 2# of { (# ww1_s1aU, ww2_s19Q #) -> ww2_s19Q };
-            0# -> case T18174.$wg2 2# ds_X2 of { (# ww1_s1aU, ww2_s19Q #) -> case ww2_s19Q of { GHC.Types.I# y_a17v -> GHC.Types.I# (GHC.Prim.+# ww1_s1aU y_a17v) } }
+            __DEFAULT -> case T18174.$wg2 ds_X2 2# of { (# ww1_s1eq, ww2_s1dl #) -> ww2_s1dl };
+            0# -> case T18174.$wg2 2# ds_X2 of { (# ww1_s1eq, ww2_s1dl #) -> case ww2_s1dl of { GHC.Types.I# y_a1ah -> GHC.Types.I# (GHC.Prim.+# ww1_s1eq y_a1ah) } }
           };
         1# -> T18174.h5
       }
 
 -- RHS size: {terms: 6, types: 3, coercions: 0, joins: 0/0}
 h2 :: Int -> Int
-h2 = \ (ds_s19U :: Int) -> case ds_s19U of { GHC.Types.I# ww_s19W -> T18174.$wh2 ww_s19W }
+h2 = \ (ds_s1dq :: Int) -> case ds_s1dq of { GHC.Types.I# ww_s1ds -> T18174.$wh2 ww_s1ds }
 
 -- RHS size: {terms: 34, types: 14, coercions: 0, joins: 0/1}
 T18174.$wg1 :: GHC.Prim.Int# -> (# GHC.Prim.Int#, Int #)
 T18174.$wg1
-  = \ (ww_s1a3 :: GHC.Prim.Int#) ->
-      case ww_s1a3 of ds_X2 {
+  = \ (ww_s1dz :: GHC.Prim.Int#) ->
+      case ww_s1dz of ds_X2 {
         __DEFAULT ->
           (# GHC.Prim.*# 2# ds_X2,
              case ds_X2 of wild_X3 {
                __DEFAULT ->
                  let {
-                   c1#_a17n :: GHC.Prim.Int#
-                   c1#_a17n = GHC.Prim.andI# 1# (GHC.Prim.<# wild_X3 0#) } in
-                 case GHC.Prim.quotInt# (GHC.Prim.-# 2# c1#_a17n) wild_X3 of wild1_a17o { __DEFAULT -> GHC.Types.I# (GHC.Prim.-# wild1_a17o c1#_a17n) };
+                   c1#_a1co :: GHC.Prim.Int#
+                   c1#_a1co = GHC.Prim.andI# 1# (GHC.Prim.<# wild_X3 0#) } in
+                 case GHC.Prim.-# (GHC.Prim.quotInt# (GHC.Prim.-# 2# c1#_a1co) wild_X3) c1#_a1co of ds2_a1aa { __DEFAULT -> GHC.Types.I# ds2_a1aa };
                0# -> GHC.Real.divZeroError @Int
              } #);
         1# -> (# 15#, T18174.h5 #)
@@ -203,52 +198,52 @@ T18174.$wg1
 
 -- RHS size: {terms: 8, types: 9, coercions: 0, joins: 0/0}
 T18174.h4 :: (Int, Int)
-T18174.h4 = case T18174.$wg1 2# of { (# ww_s1aW, ww1_s1a9 #) -> (GHC.Types.I# ww_s1aW, ww1_s1a9) }
+T18174.h4 = case T18174.$wg1 2# of { (# ww_s1es, ww1_s1dE #) -> (GHC.Types.I# ww_s1es, ww1_s1dE) }
 
 -- RHS size: {terms: 22, types: 16, coercions: 0, joins: 0/0}
 T18174.$wh1 :: GHC.Prim.Int# -> Int
 T18174.$wh1
-  = \ (ww_s1af :: GHC.Prim.Int#) ->
-      case ww_s1af of ds_X2 {
-        __DEFAULT -> case T18174.$wg1 ds_X2 of { (# ww1_s1aW, ww2_s1a9 #) -> case ww2_s1a9 of { GHC.Types.I# y_a17v -> GHC.Types.I# (GHC.Prim.+# ww1_s1aW y_a17v) } };
+  = \ (ww_s1dL :: GHC.Prim.Int#) ->
+      case ww_s1dL of ds_X2 {
+        __DEFAULT -> case T18174.$wg1 ds_X2 of { (# ww1_s1es, ww2_s1dE #) -> case ww2_s1dE of { GHC.Types.I# y_a1ah -> GHC.Types.I# (GHC.Prim.+# ww1_s1es y_a1ah) } };
         1# -> T18174.h5;
-        2# -> case T18174.h4 of { (ds1_a155, y_a156) -> y_a156 }
+        2# -> case T18174.h4 of { (ds1_a1aS, y_a1aT) -> y_a1aT }
       }
 
 -- RHS size: {terms: 6, types: 3, coercions: 0, joins: 0/0}
 h1 :: Int -> Int
-h1 = \ (ds_s1ad :: Int) -> case ds_s1ad of { GHC.Types.I# ww_s1af -> T18174.$wh1 ww_s1af }
+h1 = \ (ds_s1dJ :: Int) -> case ds_s1dJ of { GHC.Types.I# ww_s1dL -> T18174.$wh1 ww_s1dL }
 
 -- RHS size: {terms: 12, types: 5, coercions: 0, joins: 0/0}
 thunkDiverges :: Int -> (Int, Bool)
-thunkDiverges = \ (x_aIy :: Int) -> (case x_aIy of { GHC.Types.I# x1_a17s -> GHC.Types.I# (GHC.Prim.+# 2# (GHC.Prim.*# 2# x1_a17s)) }, GHC.Types.False)
+thunkDiverges = \ (x_aLg :: Int) -> (case x_aLg of { GHC.Types.I# x1_a1ae -> GHC.Types.I# (GHC.Prim.+# 2# (GHC.Prim.*# 2# x1_a1ae)) }, GHC.Types.False)
 
 -- RHS size: {terms: 13, types: 10, coercions: 0, joins: 0/0}
 T18174.$wdataConWrapper :: (Int, Int) -> Int -> (# T, Int #)
-T18174.$wdataConWrapper = \ (p_s1av :: (Int, Int)) (x_s1aw :: Int) -> (# T18174.$WMkT x_s1aw p_s1av, case x_s1aw of { GHC.Types.I# x1_a17s -> GHC.Types.I# (GHC.Prim.+# x1_a17s 1#) } #)
+T18174.$wdataConWrapper = \ (p_s1e1 :: (Int, Int)) (x_s1e2 :: Int) -> (# T18174.$WMkT x_s1e2 p_s1e1, case x_s1e2 of { GHC.Types.I# x1_a1ae -> GHC.Types.I# (GHC.Prim.+# x1_a1ae 1#) } #)
 
 -- RHS size: {terms: 10, types: 13, coercions: 0, joins: 0/0}
 dataConWrapper :: (Int, Int) -> Int -> (T, Int)
-dataConWrapper = \ (p_s1av :: (Int, Int)) (x_s1aw :: Int) -> case T18174.$wdataConWrapper p_s1av x_s1aw of { (# ww_s1aY, ww1_s1aZ #) -> (ww_s1aY, ww1_s1aZ) }
+dataConWrapper = \ (p_s1e1 :: (Int, Int)) (x_s1e2 :: Int) -> case T18174.$wdataConWrapper p_s1e1 x_s1e2 of { (# ww_s1eu, ww1_s1ev #) -> (ww_s1eu, ww1_s1ev) }
 
 Rec {
--- RHS size: {terms: 27, types: 31, coercions: 0, joins: 0/0}
+-- RHS size: {terms: 27, types: 25, coercions: 0, joins: 0/0}
 T18174.$wfacIO :: GHC.Prim.Int# -> GHC.Prim.State# GHC.Prim.RealWorld -> (# GHC.Prim.State# GHC.Prim.RealWorld, Int #)
 T18174.$wfacIO
-  = \ (ww_s1aD :: GHC.Prim.Int#) (eta_s1aF :: GHC.Prim.State# GHC.Prim.RealWorld) ->
-      case GHC.Prim.<# ww_s1aD 2# of {
-        __DEFAULT -> case T18174.$wfacIO (GHC.Prim.-# ww_s1aD 1#) eta_s1aF of { (# ipv_a180, ipv1_a181 #) -> (# ipv_a180, case ipv1_a181 of { GHC.Types.I# y_a16I -> GHC.Types.I# (GHC.Prim.*# ww_s1aD y_a16I) } #) };
-        1# -> (# eta_s1aF, lvl_r1c8 #)
+  = \ (ww_s1e9 :: GHC.Prim.Int#) (eta_s1eb :: GHC.Prim.State# GHC.Prim.RealWorld) ->
+      case GHC.Prim.<# ww_s1e9 2# of {
+        __DEFAULT -> case T18174.$wfacIO (GHC.Prim.-# ww_s1e9 1#) eta_s1eb of { (# ipv_a1bb, ipv1_a1bc #) -> (# ipv_a1bb, case ipv1_a1bc of { GHC.Types.I# y_a19M -> GHC.Types.I# (GHC.Prim.*# ww_s1e9 y_a19M) } #) };
+        1# -> (# eta_s1eb, lvl_r1fX #)
       }
 end Rec }
 
 -- RHS size: {terms: 8, types: 5, coercions: 0, joins: 0/0}
 T18174.facIO1 :: Int -> GHC.Prim.State# GHC.Prim.RealWorld -> (# GHC.Prim.State# GHC.Prim.RealWorld, Int #)
-T18174.facIO1 = \ (n_s1aB :: Int) (eta_s1aF :: GHC.Prim.State# GHC.Prim.RealWorld) -> case n_s1aB of { GHC.Types.I# ww_s1aD -> T18174.$wfacIO ww_s1aD eta_s1aF }
+T18174.facIO1 = \ (n_s1e7 :: Int) (eta_s1eb :: GHC.Prim.State# GHC.Prim.RealWorld) -> case n_s1e7 of { GHC.Types.I# ww_s1e9 -> T18174.$wfacIO ww_s1e9 eta_s1eb }
 
 -- RHS size: {terms: 1, types: 0, coercions: 6, joins: 0/0}
 facIO :: Int -> IO Int
-facIO = T18174.facIO1 `cast` (<Int>_R %<'Many>_N ->_R Sym (GHC.Types.N:IO[0] <Int>_R) :: (Int -> GHC.Prim.State# GHC.Prim.RealWorld -> (# GHC.Prim.State# GHC.Prim.RealWorld, Int #)) ~R# (Int -> IO Int))
+facIO = T18174.facIO1 `cast` (<Int>_R %<Many>_N ->_R Sym (GHC.Types.N:IO[0] <Int>_R) :: (Int -> GHC.Prim.State# GHC.Prim.RealWorld -> (# GHC.Prim.State# GHC.Prim.RealWorld, Int #)) ~R# (Int -> IO Int))
 
 
 


=====================================
testsuite/tests/cpranal/should_compile/T18401.stderr
=====================================
@@ -4,31 +4,31 @@ Result size of Tidy Core = {terms: 52, types: 86, coercions: 0, joins: 0/0}
 
 Rec {
 -- RHS size: {terms: 18, types: 24, coercions: 0, joins: 0/0}
-T18401.$w$spoly_$wgo1 :: forall {a}. a -> [a] -> (# [a] #)
+T18401.$w$spoly_$wgo1 :: forall a. a -> [a] -> (# [a] #)
 T18401.$w$spoly_$wgo1
-  = \ (@a_s18C) (w_s18D :: a_s18C) (w1_s18E :: [a_s18C]) ->
-      case w1_s18E of {
-        [] -> (# GHC.Types.[] @a_s18C #);
-        : y_a15b ys_a15c -> (# GHC.Types.: @a_s18C w_s18D (case T18401.$w$spoly_$wgo1 @a_s18C y_a15b ys_a15c of { (# ww_s18J #) -> ww_s18J }) #)
+  = \ (@a_s1cL) (sc_s1cM :: a_s1cL) (sc1_s1cN :: [a_s1cL]) ->
+      case sc1_s1cN of {
+        [] -> (# GHC.Types.[] @a_s1cL #);
+        : y_a1bH ys_a1bI -> (# GHC.Types.: @a_s1cL sc_s1cM (case T18401.$w$spoly_$wgo1 @a_s1cL y_a1bH ys_a1bI of { (# ww_s1cR #) -> ww_s1cR }) #)
       }
 end Rec }
 
 -- RHS size: {terms: 17, types: 22, coercions: 0, joins: 0/0}
 si :: forall a. [a] -> (Bool, [a])
 si
-  = \ (@a_s17T) (w_s17U :: [a_s17T]) ->
-      case w_s17U of {
-        [] -> (GHC.Types.False, GHC.Types.[] @a_s17T);
-        : y_a15b ys_a15c -> (GHC.Types.True, case T18401.$w$spoly_$wgo1 @a_s17T y_a15b ys_a15c of { (# ww_s18J #) -> ww_s18J })
+  = \ (@a_s1bR) (xs0_s1bS :: [a_s1bR]) ->
+      case xs0_s1bS of {
+        [] -> (GHC.Types.False, GHC.Types.[] @a_s1bR);
+        : y_a1bH ys_a1bI -> (GHC.Types.True, case T18401.$w$spoly_$wgo1 @a_s1bR y_a1bH ys_a1bI of { (# ww_s1cR #) -> ww_s1cR })
       }
 
 -- RHS size: {terms: 14, types: 19, coercions: 0, joins: 0/0}
 safeInit :: forall a. [a] -> Maybe [a]
 safeInit
-  = \ (@a_aPB) (xs_aut :: [a_aPB]) ->
-      case xs_aut of {
-        [] -> GHC.Maybe.Nothing @[a_aPB];
-        : y_a15b ys_a15c -> GHC.Maybe.Just @[a_aPB] (case T18401.$w$spoly_$wgo1 @a_aPB y_a15b ys_a15c of { (# ww_s18J #) -> ww_s18J })
+  = \ (@a_aQu) (xs_awN :: [a_aQu]) ->
+      case xs_awN of {
+        [] -> GHC.Maybe.Nothing @[a_aQu];
+        : y_a1bH ys_a1bI -> GHC.Maybe.Just @[a_aQu] (case T18401.$w$spoly_$wgo1 @a_aQu y_a1bH ys_a1bI of { (# ww_s1cR #) -> ww_s1cR })
       }
 
 


=====================================
testsuite/tests/pmcheck/should_compile/T11195.hs
=====================================
@@ -111,11 +111,11 @@ opt_trans_rule is co1 co2@(AppCo co2a co2b)
 
 -- Push transitivity inside forall
 opt_trans_rule is co1 co2
-  | ForAllCo tv1 eta1 r1 <- co1
-  , Just (tv2,eta2,r2) <- etaForAllCo_maybe co2 = undefined
+  | ForAllCo tv1 vl1 vr1 eta1 r1 <- co1
+  , Just (tv2,vl2,vr2,eta2,r2) <- etaForAllCo_maybe co2 = undefined
 
-  | ForAllCo tv2 eta2 r2 <- co2
-  , Just (tv1,eta1,r1) <- etaForAllCo_maybe co1 = undefined
+  | ForAllCo tv2 vl2 vr1 eta2 r2 <- co2
+  , Just (tv1,vl1,vr2,eta1,r1) <- etaForAllCo_maybe co1 = undefined
 
   where
   push_trans tv1 eta1 r1 tv2 eta2 r2 = undefined


=====================================
testsuite/tests/simplCore/should_compile/OpaqueNoCastWW.stderr
=====================================
@@ -4,7 +4,7 @@ Result size of Tidy Core
   = {terms: 82, types: 52, coercions: 29, joins: 0/0}
 
 -- RHS size: {terms: 3, types: 3, coercions: 0, joins: 0/0}
-unsafeToInteger1 :: forall {n :: Nat}. Signed n -> Signed n
+unsafeToInteger1 :: forall (n :: Nat). Signed n -> Signed n
 [GblId, Arity=1, Unf=OtherCon []]
 unsafeToInteger1 = \ (@(n :: Nat)) (ds :: Signed n) -> ds
 
@@ -15,8 +15,8 @@ unsafeToInteger
   = unsafeToInteger1
     `cast` (forall (n :: <Nat>_N).
             <Signed n>_R %<Many>_N ->_R OpaqueNoCastWW.N:Signed[0] <n>_P
-            :: (forall {n :: Nat}. Signed n -> Signed n)
-               ~R# (forall {n :: Nat}. Signed n -> Integer))
+            :: (forall (n :: Nat). Signed n -> Signed n)
+               ~R# (forall (n :: Nat). Signed n -> Integer))
 
 -- RHS size: {terms: 8, types: 7, coercions: 21, joins: 0/0}
 times [InlPrag=OPAQUE]
@@ -38,8 +38,8 @@ times
             <Signed m>_R
             %<Many>_N ->_R <Signed n>_R
             %<Many>_N ->_R Sym (OpaqueNoCastWW.N:Signed[0] <m + n>_P)
-            :: (forall {m :: Nat} {n :: Nat}. Signed m -> Signed n -> Integer)
-               ~R# (forall {m :: Nat} {n :: Nat}.
+            :: (forall (m :: Nat) (n :: Nat). Signed m -> Signed n -> Integer)
+               ~R# (forall (m :: Nat) (n :: Nat).
                     Signed m -> Signed n -> Signed (m + n)))
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}


=====================================
testsuite/tests/simplCore/should_compile/T8331.stderr
=====================================
@@ -10,9 +10,9 @@
                 %<'Many>_N ->_R <r>_R %<'Many>_N ->_R Sym (N:ST[0] <s>_N <b>_R)
                                 ; Sym (N:ReaderT[0] <*>_N <r>_R <ST s>_R <b>_N)
                 :: Coercible
-                     (forall {a} {b}.
+                     (forall a b.
                       ReaderT r (ST s) a -> ReaderT r (ST s) b -> r -> STRep s b)
-                     (forall {a} {b}.
+                     (forall a b.
                       ReaderT r (ST s) a -> ReaderT r (ST s) b -> ReaderT r (ST s) b))
 "SPEC $c<$ @(ST s) @_"
     forall (@s) (@r) ($dFunctor :: Functor (ST s)).
@@ -24,8 +24,8 @@
                 %<'Many>_N ->_R <r>_R %<'Many>_N ->_R Sym (N:ST[0] <s>_N <a>_R)
                                 ; Sym (N:ReaderT[0] <*>_N <r>_R <ST s>_R <a>_N)
                 :: Coercible
-                     (forall {a} {b}. a -> ReaderT r (ST s) b -> r -> STRep s a)
-                     (forall {a} {b}. a -> ReaderT r (ST s) b -> ReaderT r (ST s) a))
+                     (forall a b. a -> ReaderT r (ST s) b -> r -> STRep s a)
+                     (forall a b. a -> ReaderT r (ST s) b -> ReaderT r (ST s) a))
 "SPEC $c<* @(ST s) @_"
     forall (@s) (@r) ($dApplicative :: Applicative (ST s)).
       $fApplicativeReaderT_$c<* @(ST s) @r $dApplicative
@@ -36,9 +36,9 @@
                 %<'Many>_N ->_R <r>_R %<'Many>_N ->_R Sym (N:ST[0] <s>_N <a>_R)
                                 ; Sym (N:ReaderT[0] <*>_N <r>_R <ST s>_R <a>_N)
                 :: Coercible
-                     (forall {a} {b}.
+                     (forall a b.
                       ReaderT r (ST s) a -> ReaderT r (ST s) b -> r -> STRep s a)
-                     (forall {a} {b}.
+                     (forall a b.
                       ReaderT r (ST s) a -> ReaderT r (ST s) b -> ReaderT r (ST s) a))
 "SPEC $c<*> @(ST s) @_"
     forall (@s) (@r) ($dApplicative :: Applicative (ST s)).
@@ -50,9 +50,9 @@
                 %<'Many>_N ->_R <r>_R
                 %<'Many>_N ->_R Sym (N:ST[0] <s>_N <b>_R)
                 :: Coercible
-                     (forall {a} {b}.
+                     (forall a b.
                       ReaderT r (ST s) (a -> b) -> ReaderT r (ST s) a -> r -> STRep s b)
-                     (forall {a} {b}.
+                     (forall a b.
                       ReaderT r (ST s) (a -> b) -> ReaderT r (ST s) a -> r -> ST s b))
 "SPEC $c>> @(ST s) @_"
     forall (@s) (@r) ($dMonad :: Monad (ST s)).
@@ -68,9 +68,9 @@
                 %<'Many>_N ->_R <r>_R
                 %<'Many>_N ->_R Sym (N:ST[0] <s>_N <b>_R)
                 :: Coercible
-                     (forall {a} {b}.
+                     (forall a b.
                       ReaderT r (ST s) a -> (a -> ReaderT r (ST s) b) -> r -> STRep s b)
-                     (forall {a} {b}.
+                     (forall a b.
                       ReaderT r (ST s) a -> (a -> ReaderT r (ST s) b) -> r -> ST s b))
 "SPEC $cfmap @(ST s) @_"
     forall (@s) (@r) ($dFunctor :: Functor (ST s)).
@@ -82,9 +82,8 @@
                 %<'Many>_N ->_R <r>_R %<'Many>_N ->_R Sym (N:ST[0] <s>_N <b>_R)
                                 ; Sym (N:ReaderT[0] <*>_N <r>_R <ST s>_R <b>_N)
                 :: Coercible
-                     (forall {a} {b}. (a -> b) -> ReaderT r (ST s) a -> r -> STRep s b)
-                     (forall {a} {b}.
-                      (a -> b) -> ReaderT r (ST s) a -> ReaderT r (ST s) b))
+                     (forall a b. (a -> b) -> ReaderT r (ST s) a -> r -> STRep s b)
+                     (forall a b. (a -> b) -> ReaderT r (ST s) a -> ReaderT r (ST s) b))
 "SPEC $cliftA2 @(ST s) @_"
     forall (@s) (@r) ($dApplicative :: Applicative (ST s)).
       $fApplicativeReaderT_$cliftA2 @(ST s) @r $dApplicative
@@ -96,10 +95,10 @@
                 %<'Many>_N ->_R <r>_R %<'Many>_N ->_R Sym (N:ST[0] <s>_N <c>_R)
                                 ; Sym (N:ReaderT[0] <*>_N <r>_R <ST s>_R <c>_N)
                 :: Coercible
-                     (forall {a} {b} {c}.
+                     (forall a b c.
                       (a -> b -> c)
                       -> ReaderT r (ST s) a -> ReaderT r (ST s) b -> r -> STRep s c)
-                     (forall {a} {b} {c}.
+                     (forall a b c.
                       (a -> b -> c)
                       -> ReaderT r (ST s) a -> ReaderT r (ST s) b -> ReaderT r (ST s) c))
 "SPEC $cp1Applicative @(ST s) @_"
@@ -119,8 +118,8 @@
                 %<'Many>_N ->_R <r>_R %<'Many>_N ->_R Sym (N:ST[0] <s>_N <a>_R)
                                 ; Sym (N:ReaderT[0] <*>_N <r>_R <ST s>_R <a>_N)
                 :: Coercible
-                     (forall {a}. a -> r -> STRep s a)
-                     (forall {a}. a -> ReaderT r (ST s) a))
+                     (forall a. a -> r -> STRep s a)
+                     (forall a. a -> ReaderT r (ST s) a))
 "SPEC $creturn @(ST s) @_"
     forall (@s) (@r) ($dMonad :: Monad (ST s)).
       $fMonadReaderT_$creturn @(ST s) @r $dMonad
@@ -130,8 +129,8 @@
                 %<'Many>_N ->_R <r>_R %<'Many>_N ->_R Sym (N:ST[0] <s>_N <a>_R)
                                 ; Sym (N:ReaderT[0] <*>_N <r>_R <ST s>_R <a>_N)
                 :: Coercible
-                     (forall {a}. a -> r -> STRep s a)
-                     (forall {a}. a -> ReaderT r (ST s) a))
+                     (forall a. a -> r -> STRep s a)
+                     (forall a. a -> ReaderT r (ST s) a))
 "SPEC $fApplicativeReaderT @(ST s) @_"
     forall (@s) (@r) ($dApplicative :: Applicative (ST s)).
       $fApplicativeReaderT @(ST s) @r $dApplicative


=====================================
testsuite/tests/stranal/should_compile/T15627.stderr
=====================================
@@ -1,337 +1,320 @@
-[1 of 1] Compiling Unlifted         ( T15627.hs, T15627.o )
 
 ==================== Tidy Core ====================
-Result size of Tidy Core = {terms: 254, types: 130, coercions: 0, joins: 3/3}
+Result size of Tidy Core = {terms: 266, types: 128, coercions: 0, joins: 3/3}
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$trModule4 :: Addr#
-[GblId,
- Caf=NoCafRefs,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
 Unlifted.$trModule4 = "main"#
 
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$trModule3 :: GHC.Types.TrName
-[GblId,
- Caf=NoCafRefs,
- Str=m1,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
 Unlifted.$trModule3 = GHC.Types.TrNameS Unlifted.$trModule4
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$trModule2 :: Addr#
-[GblId,
- Caf=NoCafRefs,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
 Unlifted.$trModule2 = "Unlifted"#
 
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$trModule1 :: GHC.Types.TrName
-[GblId,
- Caf=NoCafRefs,
- Str=m1,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
 Unlifted.$trModule1 = GHC.Types.TrNameS Unlifted.$trModule2
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-Unlifted.$trModule :: GHC.Unit.Module
-[GblId,
- Caf=NoCafRefs,
- Str=m,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
-Unlifted.$trModule = GHC.Unit.Module Unlifted.$trModule3 Unlifted.$trModule1
+Unlifted.$trModule :: GHC.Types.Module
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
+Unlifted.$trModule = GHC.Types.Module Unlifted.$trModule3 Unlifted.$trModule1
+
+-- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
+$krep_r1d0 :: GHC.Types.KindRep
+[GblId, Unf=OtherCon []]
+$krep_r1d0 = GHC.Types.KindRepTyConApp GHC.Types.$tc'Lifted (GHC.Types.[] @GHC.Types.KindRep)
 
 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
-$krep_r2Xd :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs, Str=m1, Unf=OtherCon []]
-$krep_r2Xd = GHC.Types.KindRepTyConApp GHC.Types.$tcInt (GHC.Types.[] @ GHC.Types.KindRep)
+$krep1_r1d1 :: GHC.Types.KindRep
+[GblId, Unf=OtherCon []]
+$krep1_r1d1 = GHC.Types.KindRepTyConApp GHC.Types.$tcInt (GHC.Types.[] @GHC.Types.KindRep)
 
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
-$krep1_r2Xe :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs, Str=m2, Unf=OtherCon []]
-$krep1_r2Xe = GHC.Types.KindRepVar 1#
+$krep2_r1d2 :: GHC.Types.KindRep
+[GblId, Unf=OtherCon []]
+$krep2_r1d2 = GHC.Types.KindRepVar 1#
 
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
-$krep2_r2Xf :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs, Str=m2, Unf=OtherCon []]
-$krep2_r2Xf = GHC.Types.KindRepVar 0#
+$krep3_r1d3 :: GHC.Types.KindRep
+[GblId, Unf=OtherCon []]
+$krep3_r1d3 = GHC.Types.KindRepVar 0#
 
 -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
-$krep3_r2Xg :: [GHC.Types.KindRep]
-[GblId, Caf=NoCafRefs, Str=m2, Unf=OtherCon []]
-$krep3_r2Xg = GHC.Types.: @ GHC.Types.KindRep $krep2_r2Xf (GHC.Types.[] @ GHC.Types.KindRep)
+$krep4_r1d4 :: [GHC.Types.KindRep]
+[GblId, Unf=OtherCon []]
+$krep4_r1d4 = GHC.Types.: @GHC.Types.KindRep $krep3_r1d3 (GHC.Types.[] @GHC.Types.KindRep)
+
+-- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
+$krep5_r1d5 :: [GHC.Types.KindRep]
+[GblId, Unf=OtherCon []]
+$krep5_r1d5 = GHC.Types.: @GHC.Types.KindRep $krep_r1d0 $krep4_r1d4
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep4_r2Xh :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs, Str=m1, Unf=OtherCon []]
-$krep4_r2Xh = GHC.Types.KindRepTyConApp GHC.Types.$tcArray# $krep3_r2Xg
+$krep6_r1d6 :: GHC.Types.KindRep
+[GblId, Unf=OtherCon []]
+$krep6_r1d6 = GHC.Types.KindRepTyConApp GHC.Types.$tcArray# $krep5_r1d5
 
 -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
-$krep5_r2Xi :: [GHC.Types.KindRep]
-[GblId, Caf=NoCafRefs, Str=m2, Unf=OtherCon []]
-$krep5_r2Xi = GHC.Types.: @ GHC.Types.KindRep $krep1_r2Xe (GHC.Types.[] @ GHC.Types.KindRep)
+$krep7_r1d7 :: [GHC.Types.KindRep]
+[GblId, Unf=OtherCon []]
+$krep7_r1d7 = GHC.Types.: @GHC.Types.KindRep $krep2_r1d2 (GHC.Types.[] @GHC.Types.KindRep)
 
 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
-$krep6_r2Xj :: [GHC.Types.KindRep]
-[GblId, Caf=NoCafRefs, Str=m2, Unf=OtherCon []]
-$krep6_r2Xj = GHC.Types.: @ GHC.Types.KindRep $krep2_r2Xf $krep5_r2Xi
+$krep8_r1d8 :: [GHC.Types.KindRep]
+[GblId, Unf=OtherCon []]
+$krep8_r1d8 = GHC.Types.: @GHC.Types.KindRep $krep3_r1d3 $krep7_r1d7
+
+-- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
+$krep9_r1d9 :: [GHC.Types.KindRep]
+[GblId, Unf=OtherCon []]
+$krep9_r1d9 = GHC.Types.: @GHC.Types.KindRep $krep_r1d0 $krep8_r1d8
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep7_r2Xk :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs, Str=m1, Unf=OtherCon []]
-$krep7_r2Xk = GHC.Types.KindRepTyConApp GHC.Types.$tcMutVar# $krep6_r2Xj
+$krep10_r1da :: GHC.Types.KindRep
+[GblId, Unf=OtherCon []]
+$krep10_r1da = GHC.Types.KindRepTyConApp GHC.Types.$tcMutVar# $krep9_r1d9
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$tcMMutVar2 :: Addr#
-[GblId,
- Caf=NoCafRefs,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
 Unlifted.$tcMMutVar2 = "MMutVar"#
 
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$tcMMutVar1 :: GHC.Types.TrName
-[GblId,
- Caf=NoCafRefs,
- Str=m1,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
 Unlifted.$tcMMutVar1 = GHC.Types.TrNameS Unlifted.$tcMMutVar2
 
 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$tcMMutVar :: GHC.Types.TyCon
-[GblId,
- Caf=NoCafRefs,
- Str=m,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
 Unlifted.$tcMMutVar
-  = GHC.Types.TyCon 976071122164149049## 18076036821450447502## Unlifted.$trModule Unlifted.$tcMMutVar1 0# GHC.Types.krep$*->*->*
+  = GHC.Types.TyCon
+      976071122164149049#Word64 18076036821450447502#Word64 Unlifted.$trModule Unlifted.$tcMMutVar1 0# GHC.Types.krep$*->*->*
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep8_r2Xl :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs, Str=m1, Unf=OtherCon []]
-$krep8_r2Xl = GHC.Types.KindRepTyConApp Unlifted.$tcMMutVar $krep6_r2Xj
+$krep11_r1db :: GHC.Types.KindRep
+[GblId, Unf=OtherCon []]
+$krep11_r1db = GHC.Types.KindRepTyConApp Unlifted.$tcMMutVar $krep8_r1d8
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep9_r2Xm :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs, Str=m4, Unf=OtherCon []]
-$krep9_r2Xm = GHC.Types.KindRepFun $krep_r2Xd $krep8_r2Xl
+$krep12_r1dc :: GHC.Types.KindRep
+[GblId, Unf=OtherCon []]
+$krep12_r1dc = GHC.Types.KindRepFun $krep1_r1d1 $krep11_r1db
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-Unlifted.$tc'MMutVar1 [InlPrag=NOUSERINLINE[~]] :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs, Str=m4, Unf=OtherCon []]
-Unlifted.$tc'MMutVar1 = GHC.Types.KindRepFun $krep7_r2Xk $krep9_r2Xm
+Unlifted.$tc'MMutVar1 [InlPrag=[~]] :: GHC.Types.KindRep
+[GblId, Unf=OtherCon []]
+Unlifted.$tc'MMutVar1 = GHC.Types.KindRepFun $krep10_r1da $krep12_r1dc
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$tc'MMutVar3 :: Addr#
-[GblId,
- Caf=NoCafRefs,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
 Unlifted.$tc'MMutVar3 = "'MMutVar"#
 
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$tc'MMutVar2 :: GHC.Types.TrName
-[GblId,
- Caf=NoCafRefs,
- Str=m1,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
 Unlifted.$tc'MMutVar2 = GHC.Types.TrNameS Unlifted.$tc'MMutVar3
 
 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$tc'MMutVar :: GHC.Types.TyCon
-[GblId,
- Caf=NoCafRefs,
- Str=m,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
 Unlifted.$tc'MMutVar
-  = GHC.Types.TyCon 1807347364283186211## 6245494011022471830## Unlifted.$trModule Unlifted.$tc'MMutVar2 2# Unlifted.$tc'MMutVar1
+  = GHC.Types.TyCon
+      1807347364283186211#Word64 6245494011022471830#Word64 Unlifted.$trModule Unlifted.$tc'MMutVar2 2# Unlifted.$tc'MMutVar1
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$tcAArray2 :: Addr#
-[GblId,
- Caf=NoCafRefs,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
 Unlifted.$tcAArray2 = "AArray"#
 
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$tcAArray1 :: GHC.Types.TrName
-[GblId,
- Caf=NoCafRefs,
- Str=m1,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
 Unlifted.$tcAArray1 = GHC.Types.TrNameS Unlifted.$tcAArray2
 
 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$tcAArray :: GHC.Types.TyCon
-[GblId,
- Caf=NoCafRefs,
- Str=m,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
 Unlifted.$tcAArray
-  = GHC.Types.TyCon 15463012197909582608## 8369862272173810511## Unlifted.$trModule Unlifted.$tcAArray1 0# GHC.Types.krep$*Arr*
+  = GHC.Types.TyCon
+      15463012197909582608#Word64 8369862272173810511#Word64 Unlifted.$trModule Unlifted.$tcAArray1 0# GHC.Types.krep$*Arr*
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep10_r2Xn :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs, Str=m1, Unf=OtherCon []]
-$krep10_r2Xn = GHC.Types.KindRepTyConApp Unlifted.$tcAArray $krep3_r2Xg
+$krep13_r1dd :: GHC.Types.KindRep
+[GblId, Unf=OtherCon []]
+$krep13_r1dd = GHC.Types.KindRepTyConApp Unlifted.$tcAArray $krep4_r1d4
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep11_r2Xo :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs, Str=m4, Unf=OtherCon []]
-$krep11_r2Xo = GHC.Types.KindRepFun $krep_r2Xd $krep10_r2Xn
+$krep14_r1de :: GHC.Types.KindRep
+[GblId, Unf=OtherCon []]
+$krep14_r1de = GHC.Types.KindRepFun $krep1_r1d1 $krep13_r1dd
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-Unlifted.$tc'AArray1 [InlPrag=NOUSERINLINE[~]] :: GHC.Types.KindRep
-[GblId, Caf=NoCafRefs, Str=m4, Unf=OtherCon []]
-Unlifted.$tc'AArray1 = GHC.Types.KindRepFun $krep4_r2Xh $krep11_r2Xo
+Unlifted.$tc'AArray1 [InlPrag=[~]] :: GHC.Types.KindRep
+[GblId, Unf=OtherCon []]
+Unlifted.$tc'AArray1 = GHC.Types.KindRepFun $krep6_r1d6 $krep14_r1de
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$tc'AArray3 :: Addr#
-[GblId,
- Caf=NoCafRefs,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
 Unlifted.$tc'AArray3 = "'AArray"#
 
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$tc'AArray2 :: GHC.Types.TrName
-[GblId,
- Caf=NoCafRefs,
- Str=m1,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
 Unlifted.$tc'AArray2 = GHC.Types.TrNameS Unlifted.$tc'AArray3
 
 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
 Unlifted.$tc'AArray :: GHC.Types.TyCon
-[GblId,
- Caf=NoCafRefs,
- Str=m,
- Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
 Unlifted.$tc'AArray
-  = GHC.Types.TyCon 5117353292610538775## 18288923674485681885## Unlifted.$trModule Unlifted.$tc'AArray2 1# Unlifted.$tc'AArray1
+  = GHC.Types.TyCon
+      5117353292610538775#Word64 18288923674485681885#Word64 Unlifted.$trModule Unlifted.$tc'AArray2 1# Unlifted.$tc'AArray1
 
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
-lvl_r2Xp :: Int
-[GblId, Caf=NoCafRefs, Str=m, Unf=OtherCon []]
-lvl_r2Xp = GHC.Types.I# 1#
+Unlifted.fac1 :: Int
+[GblId, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
+Unlifted.fac1 = GHC.Types.I# 1#
 
 -- RHS size: {terms: 34, types: 10, coercions: 0, joins: 1/1}
-fac [InlPrag=NOUSERINLINE[2]] :: Int -> Int
+fac :: Int -> Int
 [GblId,
  Arity=1,
- Caf=NoCafRefs,
- Str=<S(S),1*U(U)>m,
- Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True,
+ Str=<1!P(L)>,
+ Cpr=1,
+ Unf=Unf{Src=StableSystem, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True,
          Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
-         Tmpl= \ (w_s2UI [Occ=Once!] :: Int) ->
-                 case w_s2UI of { I# ww1_s2UL ->
-                 case ># 1# ww1_s2UL of {
+         Tmpl= \ (n_ayj [Occ=Once1!] :: Int) ->
+                 case n_ayj of { I# y_a1bo ->
+                 case ># 1# y_a1bo of {
                    __DEFAULT ->
                      joinrec {
-                       $wgo_s2UH [InlPrag=NOUSERINLINE[2], Occ=LoopBreakerT[2]] :: Int# -> Int# -> Int
-                       [LclId[JoinId(2)], Arity=2, Str=<S,U><S,U>m, Unf=OtherCon []]
-                       $wgo_s2UH (w1_s2UB :: Int#) (ww2_s2UF [Occ=Once*] :: Int#)
-                         = case ==# w1_s2UB ww1_s2UL of {
-                             __DEFAULT -> jump $wgo_s2UH (+# w1_s2UB 1#) (*# ww2_s2UF w1_s2UB);
-                             1# -> GHC.Types.I# (*# ww2_s2UF w1_s2UB)
+                       go3_a1bC [InlPrag=[2], Occ=T[2]] :: Int# -> Int -> Int
+                       [LclId[JoinId(2)(Just [~, !])],
+                        Arity=2,
+                        Str=<L><S!P(L)>,
+                        Unf=Unf{Src=StableSystem, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True,
+                                Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=False)
+                                Tmpl= \ (x_s1bI [Occ=Once1] :: Int#) (v_s1bJ [Occ=Once1!, OS=OneShot] :: Int) ->
+                                        case v_s1bJ of { I# ww_s1bL [Occ=Once1] -> jump $wgo3_s1bO x_s1bI ww_s1bL }}]
+                       go3_a1bC (x_s1bI [Occ=Once1] :: Int#) (v_s1bJ [Occ=Once1!, OS=OneShot] :: Int)
+                         = case v_s1bJ of { I# ww_s1bL [Occ=Once1] -> jump $wgo3_s1bO x_s1bI ww_s1bL };
+                       $wgo3_s1bO [InlPrag=[2], Occ=LoopBreakerT[2]] :: Int# -> Int# -> Int
+                       [LclId[JoinId(2)(Nothing)], Arity=2, Str=<L><L>, Unf=OtherCon []]
+                       $wgo3_s1bO (x_s1bI :: Int#) (ww_s1bL [Occ=Once2] :: Int#)
+                         = case ==# x_s1bI y_a1bo of {
+                             __DEFAULT -> jump go3_a1bC (+# x_s1bI 1#) (GHC.Types.I# (*# ww_s1bL x_s1bI));
+                             1# -> GHC.Types.I# (*# ww_s1bL x_s1bI)
                            }; } in
-                     jump $wgo_s2UH 1# 1#;
-                   1# -> GHC.Types.I# 1#
+                     jump go3_a1bC 1# Unlifted.fac1;
+                   1# -> Unlifted.fac1
                  }
                  }}]
 fac
-  = \ (w_s2UI :: Int) ->
-      case w_s2UI of { I# ww1_s2UL ->
-      case ># 1# ww1_s2UL of {
+  = \ (n_ayj :: Int) ->
+      case n_ayj of { I# y_a1bo ->
+      case ># 1# y_a1bo of {
         __DEFAULT ->
           joinrec {
-            $wgo_s2UH [InlPrag=NOUSERINLINE[2], Occ=LoopBreaker] :: Int# -> Int# -> Int
-            [LclId[JoinId(2)], Arity=2, Str=<S,U><S,U>m, Unf=OtherCon []]
-            $wgo_s2UH (w1_s2UB :: Int#) (ww2_s2UF :: Int#)
-              = case ==# w1_s2UB ww1_s2UL of {
-                  __DEFAULT -> jump $wgo_s2UH (+# w1_s2UB 1#) (*# ww2_s2UF w1_s2UB);
-                  1# -> GHC.Types.I# (*# ww2_s2UF w1_s2UB)
+            $wgo3_s1bO [InlPrag=[2], Occ=LoopBreaker, Dmd=SC(S,C(1,!P(L)))] :: Int# -> Int# -> Int
+            [LclId[JoinId(2)(Nothing)], Arity=2, Str=<L><L>, Unf=OtherCon []]
+            $wgo3_s1bO (x_s1bI :: Int#) (ww_s1bL :: Int#)
+              = case ==# x_s1bI y_a1bo of {
+                  __DEFAULT -> jump $wgo3_s1bO (+# x_s1bI 1#) (*# ww_s1bL x_s1bI);
+                  1# -> GHC.Types.I# (*# ww_s1bL x_s1bI)
                 }; } in
-          jump $wgo_s2UH 1# 1#;
-        1# -> lvl_r2Xp
+          jump $wgo3_s1bO 1# 1#;
+        1# -> Unlifted.fac1
       }
       }
 
--- RHS size: {terms: 32, types: 12, coercions: 0, joins: 1/1}
-Unlifted.$wmutVar [InlPrag=NOINLINE] :: forall {s} {a}. Int# -> Int#
-[GblId, Arity=1, Caf=NoCafRefs, Str=<S,U>, Unf=OtherCon []]
+-- RHS size: {terms: 32, types: 10, coercions: 0, joins: 1/1}
+Unlifted.$wmutVar [InlPrag=NOINLINE] :: forall s a. Int# -> Int#
+[GblId, Arity=1, Str=<L>, Unf=OtherCon []]
 Unlifted.$wmutVar
-  = \ (@ s_s2UR) (@ a_s2US) (ww_s2V0 :: Int#) ->
-      case ># 1# ww_s2V0 of {
+  = \ (@s_s1bX) (@a_s1bY) (ww_s1c4 :: Int#) ->
+      case ># 1# ww_s1c4 of {
         __DEFAULT ->
           joinrec {
-            $wgo_s2UH [InlPrag=NOUSERINLINE[2], Occ=LoopBreaker] :: Int# -> Int# -> Int#
-            [LclId[JoinId(2)], Arity=2, Str=<S,U><S,U>, Unf=OtherCon []]
-            $wgo_s2UH (w_s2UB :: Int#) (ww1_s2UF :: Int#)
-              = case ==# w_s2UB ww_s2V0 of {
-                  __DEFAULT -> jump $wgo_s2UH (+# w_s2UB 1#) (*# ww1_s2UF w_s2UB);
-                  1# -> *# ww1_s2UF w_s2UB
+            $wgo3_s1bO [InlPrag=[2], Occ=LoopBreaker, Dmd=SC(S,C(1,L))] :: Int# -> Int# -> Int#
+            [LclId[JoinId(2)(Nothing)], Arity=2, Str=<L><L>, Unf=OtherCon []]
+            $wgo3_s1bO (x_s1bI :: Int#) (ww1_s1bL :: Int#)
+              = case ==# x_s1bI ww_s1c4 of {
+                  __DEFAULT -> jump $wgo3_s1bO (+# x_s1bI 1#) (*# ww1_s1bL x_s1bI);
+                  1# -> *# ww1_s1bL x_s1bI
                 }; } in
-          jump $wgo_s2UH 1# 1#;
+          jump $wgo3_s1bO 1# 1#;
         1# -> 1#
       }
 
--- RHS size: {terms: 15, types: 19, coercions: 0, joins: 0/0}
-mutVar [InlPrag=NOUSERINLINE[0]] :: forall s a. MMutVar s a -> Int
+-- RHS size: {terms: 15, types: 18, coercions: 0, joins: 0/0}
+mutVar [InlPrag=NOINLINE[final]] :: forall s a. MMutVar s a -> Int
 [GblId,
  Arity=1,
- Caf=NoCafRefs,
- Str=<S(LS(S)),1*U(A,1*U(U))>m,
- Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True,
+ Str=<1!P(A,1!P(L))>,
+ Cpr=1,
+ Unf=Unf{Src=StableSystem, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True,
          Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
-         Tmpl= \ (@ s_s2UR) (@ a_s2US) (w_s2UT [Occ=Once!] :: MMutVar s_s2UR a_s2US) ->
-                 case w_s2UT of { MMutVar _ [Occ=Dead] ww2_s2UX [Occ=Once!] ->
-                 case ww2_s2UX of { I# ww4_s2V0 [Occ=Once] ->
-                 case Unlifted.$wmutVar @ s_s2UR @ a_s2US ww4_s2V0 of ww5_s2V5 [Occ=Once] { __DEFAULT -> GHC.Types.I# ww5_s2V5 }
+         Tmpl= \ (@s_s1bX) (@a_s1bY) (ds_s1bZ [Occ=Once1!] :: MMutVar s_s1bX a_s1bY) ->
+                 case ds_s1bZ of { MMutVar _ [Occ=Dead] ww1_s1c2 [Occ=Once1!] ->
+                 case ww1_s1c2 of { I# ww2_s1c4 [Occ=Once1] ->
+                 case Unlifted.$wmutVar @s_s1bX @a_s1bY ww2_s1c4 of ww3_s1cn [Occ=Once1] { __DEFAULT -> GHC.Types.I# ww3_s1cn }
                  }
                  }}]
 mutVar
-  = \ (@ s_s2UR) (@ a_s2US) (w_s2UT :: MMutVar s_s2UR a_s2US) ->
-      case w_s2UT of { MMutVar ww1_s2UW ww2_s2UX ->
-      case ww2_s2UX of { I# ww4_s2V0 ->
-      case Unlifted.$wmutVar @ s_s2UR @ a_s2US ww4_s2V0 of ww5_s2V5 { __DEFAULT -> GHC.Types.I# ww5_s2V5 }
+  = \ (@s_s1bX) (@a_s1bY) (ds_s1bZ :: MMutVar s_s1bX a_s1bY) ->
+      case ds_s1bZ of { MMutVar ww_s1c1 ww1_s1c2 ->
+      case ww1_s1c2 of { I# ww2_s1c4 ->
+      case Unlifted.$wmutVar @s_s1bX @a_s1bY ww2_s1c4 of ww3_s1cn { __DEFAULT -> GHC.Types.I# ww3_s1cn }
       }
       }
 
--- RHS size: {terms: 31, types: 10, coercions: 0, joins: 1/1}
-Unlifted.$warray [InlPrag=NOINLINE] :: forall {a}. Int# -> Int#
-[GblId, Arity=1, Caf=NoCafRefs, Str=<S,U>, Unf=OtherCon []]
+-- RHS size: {terms: 31, types: 9, coercions: 0, joins: 1/1}
+Unlifted.$warray [InlPrag=NOINLINE] :: forall a. Int# -> Int#
+[GblId, Arity=1, Str=<L>, Unf=OtherCon []]
 Unlifted.$warray
-  = \ (@ a_s2V7) (ww_s2Vf :: Int#) ->
-      case ># 1# ww_s2Vf of {
+  = \ (@a_s1cb) (ww_s1ch :: Int#) ->
+      case ># 1# ww_s1ch of {
         __DEFAULT ->
           joinrec {
-            $wgo_s2UH [InlPrag=NOUSERINLINE[2], Occ=LoopBreaker] :: Int# -> Int# -> Int#
-            [LclId[JoinId(2)], Arity=2, Str=<S,U><S,U>, Unf=OtherCon []]
-            $wgo_s2UH (w_s2UB :: Int#) (ww1_s2UF :: Int#)
-              = case ==# w_s2UB ww_s2Vf of {
-                  __DEFAULT -> jump $wgo_s2UH (+# w_s2UB 1#) (*# ww1_s2UF w_s2UB);
-                  1# -> *# ww1_s2UF w_s2UB
+            $wgo3_s1bO [InlPrag=[2], Occ=LoopBreaker, Dmd=SC(S,C(1,L))] :: Int# -> Int# -> Int#
+            [LclId[JoinId(2)(Nothing)], Arity=2, Str=<L><L>, Unf=OtherCon []]
+            $wgo3_s1bO (x_s1bI :: Int#) (ww1_s1bL :: Int#)
+              = case ==# x_s1bI ww_s1ch of {
+                  __DEFAULT -> jump $wgo3_s1bO (+# x_s1bI 1#) (*# ww1_s1bL x_s1bI);
+                  1# -> *# ww1_s1bL x_s1bI
                 }; } in
-          jump $wgo_s2UH 1# 1#;
+          jump $wgo3_s1bO 1# 1#;
         1# -> 1#
       }
 
 -- RHS size: {terms: 14, types: 13, coercions: 0, joins: 0/0}
-array [InlPrag=NOUSERINLINE[0]] :: forall a. AArray a -> Int
+array [InlPrag=NOINLINE[final]] :: forall a. AArray a -> Int
 [GblId,
  Arity=1,
- Caf=NoCafRefs,
- Str=<S(LS(S)),1*U(A,1*U(U))>m,
- Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True,
+ Str=<1!P(A,1!P(L))>,
+ Cpr=1,
+ Unf=Unf{Src=StableSystem, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True,
          Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
-         Tmpl= \ (@ a_s2V7) (w_s2V8 [Occ=Once!] :: AArray a_s2V7) ->
-                 case w_s2V8 of { AArray _ [Occ=Dead] ww2_s2Vc [Occ=Once!] ->
-                 case ww2_s2Vc of { I# ww4_s2Vf [Occ=Once] ->
-                 case Unlifted.$warray @ a_s2V7 ww4_s2Vf of ww5_s2Vk [Occ=Once] { __DEFAULT -> GHC.Types.I# ww5_s2Vk }
+         Tmpl= \ (@a_s1cb) (ds_s1cc [Occ=Once1!] :: AArray a_s1cb) ->
+                 case ds_s1cc of { AArray _ [Occ=Dead] ww1_s1cf [Occ=Once1!] ->
+                 case ww1_s1cf of { I# ww2_s1ch [Occ=Once1] ->
+                 case Unlifted.$warray @a_s1cb ww2_s1ch of ww3_s1cp [Occ=Once1] { __DEFAULT -> GHC.Types.I# ww3_s1cp }
                  }
                  }}]
 array
-  = \ (@ a_s2V7) (w_s2V8 :: AArray a_s2V7) ->
-      case w_s2V8 of { AArray ww1_s2Vb ww2_s2Vc ->
-      case ww2_s2Vc of { I# ww4_s2Vf -> case Unlifted.$warray @ a_s2V7 ww4_s2Vf of ww5_s2Vk { __DEFAULT -> GHC.Types.I# ww5_s2Vk } }
+  = \ (@a_s1cb) (ds_s1cc :: AArray a_s1cb) ->
+      case ds_s1cc of { AArray ww_s1ce ww1_s1cf ->
+      case ww1_s1cf of { I# ww2_s1ch -> case Unlifted.$warray @a_s1cb ww2_s1ch of ww3_s1cp { __DEFAULT -> GHC.Types.I# ww3_s1cp } }
       }
 
 


=====================================
testsuite/tests/stranal/should_compile/T18982.stderr
=====================================
@@ -1,10 +1,10 @@
 
 ==================== Tidy Core ====================
-Result size of Tidy Core = {terms: 311, types: 214, coercions: 4, joins: 0/0}
+Result size of Tidy Core = {terms: 295, types: 206, coercions: 4, joins: 0/0}
 
 -- RHS size: {terms: 8, types: 9, coercions: 1, joins: 0/0}
 T18982.$WExGADT :: forall e. (e ~ Int) => e %1 -> Int %1 -> ExGADT Int
-T18982.$WExGADT = \ (@e) (conrep :: e ~ Int) (conrep :: e) (conrep :: Int) -> T18982.ExGADT @Int @e @~(<Int>_N :: Int GHC.Prim.~# Int) conrep conrep conrep
+T18982.$WExGADT = \ (@e) (conrep :: e ~ Int) (conrep1 :: e) (conrep2 :: Int) -> T18982.ExGADT @Int @e @~(<Int>_N :: Int GHC.Prim.~# Int) conrep conrep1 conrep2
 
 -- RHS size: {terms: 3, types: 2, coercions: 1, joins: 0/0}
 T18982.$WGADT :: Int %1 -> GADT Int
@@ -12,7 +12,7 @@ T18982.$WGADT = \ (conrep :: Int) -> T18982.GADT @Int @~(<Int>_N :: Int GHC.Prim
 
 -- RHS size: {terms: 7, types: 6, coercions: 0, joins: 0/0}
 T18982.$WEx :: forall e a. e %1 -> a %1 -> Ex a
-T18982.$WEx = \ (@e) (@a) (conrep :: e) (conrep :: a) -> T18982.Ex @a @e conrep conrep
+T18982.$WEx = \ (@e) (@a) (conrep :: e) (conrep1 :: a) -> T18982.Ex @a @e conrep conrep1
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 T18982.$trModule4 :: GHC.Prim.Addr#
@@ -46,22 +46,6 @@ $krep1 = GHC.Types.KindRepVar 1#
 $krep2 :: GHC.Types.KindRep
 $krep2 = GHC.Types.KindRepVar 0#
 
--- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
-$krep3 :: [GHC.Types.KindRep]
-$krep3 = GHC.Types.: @GHC.Types.KindRep $krep (GHC.Types.[] @GHC.Types.KindRep)
-
--- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
-$krep4 :: [GHC.Types.KindRep]
-$krep4 = GHC.Types.: @GHC.Types.KindRep $krep2 $krep3
-
--- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
-$krep5 :: [GHC.Types.KindRep]
-$krep5 = GHC.Types.: @GHC.Types.KindRep GHC.Types.krep$* $krep4
-
--- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep6 :: GHC.Types.KindRep
-$krep6 = GHC.Types.KindRepTyConApp GHC.Types.$tc~ $krep5
-
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 T18982.$tcBox2 :: GHC.Prim.Addr#
 T18982.$tcBox2 = "Box"#
@@ -75,16 +59,16 @@ T18982.$tcBox :: GHC.Types.TyCon
 T18982.$tcBox = GHC.Types.TyCon 16948648223906549518#Word64 2491460178135962649#Word64 T18982.$trModule T18982.$tcBox1 0# GHC.Types.krep$*Arr*
 
 -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
-$krep7 :: [GHC.Types.KindRep]
-$krep7 = GHC.Types.: @GHC.Types.KindRep $krep2 (GHC.Types.[] @GHC.Types.KindRep)
+$krep3 :: [GHC.Types.KindRep]
+$krep3 = GHC.Types.: @GHC.Types.KindRep $krep2 (GHC.Types.[] @GHC.Types.KindRep)
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep8 :: GHC.Types.KindRep
-$krep8 = GHC.Types.KindRepTyConApp T18982.$tcBox $krep7
+$krep4 :: GHC.Types.KindRep
+$krep4 = GHC.Types.KindRepTyConApp T18982.$tcBox $krep3
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 T18982.$tc'Box1 :: GHC.Types.KindRep
-T18982.$tc'Box1 = GHC.Types.KindRepFun $krep2 $krep8
+T18982.$tc'Box1 = GHC.Types.KindRepFun $krep2 $krep4
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 T18982.$tc'Box3 :: GHC.Prim.Addr#
@@ -111,20 +95,20 @@ T18982.$tcEx :: GHC.Types.TyCon
 T18982.$tcEx = GHC.Types.TyCon 4376661818164435927#Word64 18005417598910668817#Word64 T18982.$trModule T18982.$tcEx1 0# GHC.Types.krep$*Arr*
 
 -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
-$krep9 :: [GHC.Types.KindRep]
-$krep9 = GHC.Types.: @GHC.Types.KindRep $krep1 (GHC.Types.[] @GHC.Types.KindRep)
+$krep5 :: [GHC.Types.KindRep]
+$krep5 = GHC.Types.: @GHC.Types.KindRep $krep1 (GHC.Types.[] @GHC.Types.KindRep)
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep10 :: GHC.Types.KindRep
-$krep10 = GHC.Types.KindRepTyConApp T18982.$tcEx $krep9
+$krep6 :: GHC.Types.KindRep
+$krep6 = GHC.Types.KindRepTyConApp T18982.$tcEx $krep5
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep11 :: GHC.Types.KindRep
-$krep11 = GHC.Types.KindRepFun $krep1 $krep10
+$krep7 :: GHC.Types.KindRep
+$krep7 = GHC.Types.KindRepFun $krep1 $krep6
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 T18982.$tc'Ex1 :: GHC.Types.KindRep
-T18982.$tc'Ex1 = GHC.Types.KindRepFun $krep2 $krep11
+T18982.$tc'Ex1 = GHC.Types.KindRepFun $krep2 $krep7
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 T18982.$tc'Ex3 :: GHC.Prim.Addr#
@@ -150,13 +134,17 @@ T18982.$tcGADT1 = GHC.Types.TrNameS T18982.$tcGADT2
 T18982.$tcGADT :: GHC.Types.TyCon
 T18982.$tcGADT = GHC.Types.TyCon 9243924476135839950#Word64 5096619276488416461#Word64 T18982.$trModule T18982.$tcGADT1 0# GHC.Types.krep$*Arr*
 
+-- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
+$krep8 :: [GHC.Types.KindRep]
+$krep8 = GHC.Types.: @GHC.Types.KindRep $krep (GHC.Types.[] @GHC.Types.KindRep)
+
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep12 :: GHC.Types.KindRep
-$krep12 = GHC.Types.KindRepTyConApp T18982.$tcGADT $krep3
+$krep9 :: GHC.Types.KindRep
+$krep9 = GHC.Types.KindRepTyConApp T18982.$tcGADT $krep8
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 T18982.$tc'GADT1 :: GHC.Types.KindRep
-T18982.$tc'GADT1 = GHC.Types.KindRepFun $krep $krep12
+T18982.$tc'GADT1 = GHC.Types.KindRepFun $krep $krep9
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 T18982.$tc'GADT3 :: GHC.Prim.Addr#
@@ -183,20 +171,16 @@ T18982.$tcExGADT :: GHC.Types.TyCon
 T18982.$tcExGADT = GHC.Types.TyCon 6470898418160489500#Word64 10361108917441214060#Word64 T18982.$trModule T18982.$tcExGADT1 0# GHC.Types.krep$*Arr*
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep13 :: GHC.Types.KindRep
-$krep13 = GHC.Types.KindRepTyConApp T18982.$tcExGADT $krep3
-
--- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep14 :: GHC.Types.KindRep
-$krep14 = GHC.Types.KindRepFun $krep $krep13
+$krep10 :: GHC.Types.KindRep
+$krep10 = GHC.Types.KindRepTyConApp T18982.$tcExGADT $krep8
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
-$krep15 :: GHC.Types.KindRep
-$krep15 = GHC.Types.KindRepFun $krep2 $krep14
+$krep11 :: GHC.Types.KindRep
+$krep11 = GHC.Types.KindRepFun $krep $krep10
 
 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
 T18982.$tc'ExGADT1 :: GHC.Types.KindRep
-T18982.$tc'ExGADT1 = GHC.Types.KindRepFun $krep6 $krep15
+T18982.$tc'ExGADT1 = GHC.Types.KindRepFun $krep2 $krep11
 
 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
 T18982.$tc'ExGADT3 :: GHC.Prim.Addr#
@@ -211,7 +195,7 @@ T18982.$tc'ExGADT :: GHC.Types.TyCon
 T18982.$tc'ExGADT = GHC.Types.TyCon 8468257409157161049#Word64 5503123603717080600#Word64 T18982.$trModule T18982.$tc'ExGADT2 1# T18982.$tc'ExGADT1
 
 -- RHS size: {terms: 11, types: 10, coercions: 0, joins: 0/0}
-T18982.$wi :: forall {a} {e}. (a GHC.Prim.~# Int) => e -> GHC.Prim.Int# -> GHC.Prim.Int#
+T18982.$wi :: forall a e. (a GHC.Prim.~# Int) => e -> GHC.Prim.Int# -> GHC.Prim.Int#
 T18982.$wi = \ (@a) (@e) (ww :: a GHC.Prim.~# Int) (ww1 :: e) (ww2 :: GHC.Prim.Int#) -> case ww1 of { __DEFAULT -> GHC.Prim.+# ww2 1# }
 
 -- RHS size: {terms: 15, types: 22, coercions: 1, joins: 0/0}
@@ -219,7 +203,7 @@ i :: forall a. ExGADT a -> Int
 i = \ (@a) (ds :: ExGADT a) -> case ds of { ExGADT @e ww ww1 ww2 ww3 -> case ww3 of { GHC.Types.I# ww4 -> case T18982.$wi @a @e @~(ww :: a GHC.Prim.~# Int) ww2 ww4 of ww5 { __DEFAULT -> GHC.Types.I# ww5 } } }
 
 -- RHS size: {terms: 6, types: 7, coercions: 0, joins: 0/0}
-T18982.$wh :: forall {a}. (a GHC.Prim.~# Int) => GHC.Prim.Int# -> GHC.Prim.Int#
+T18982.$wh :: forall a. (a GHC.Prim.~# Int) => GHC.Prim.Int# -> GHC.Prim.Int#
 T18982.$wh = \ (@a) (ww :: a GHC.Prim.~# Int) (ww1 :: GHC.Prim.Int#) -> GHC.Prim.+# ww1 1#
 
 -- RHS size: {terms: 14, types: 15, coercions: 1, joins: 0/0}
@@ -227,7 +211,7 @@ h :: forall a. GADT a -> Int
 h = \ (@a) (ds :: GADT a) -> case ds of { GADT ww ww1 -> case ww1 of { GHC.Types.I# ww2 -> case T18982.$wh @a @~(ww :: a GHC.Prim.~# Int) ww2 of ww3 { __DEFAULT -> GHC.Types.I# ww3 } } }
 
 -- RHS size: {terms: 9, types: 4, coercions: 0, joins: 0/0}
-T18982.$wg :: forall {e}. e -> GHC.Prim.Int# -> GHC.Prim.Int#
+T18982.$wg :: forall e. e -> GHC.Prim.Int# -> GHC.Prim.Int#
 T18982.$wg = \ (@e) (ww :: e) (ww1 :: GHC.Prim.Int#) -> case ww of { __DEFAULT -> GHC.Prim.+# ww1 1# }
 
 -- RHS size: {terms: 14, types: 11, coercions: 0, joins: 0/0}



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/ebc9f2bfb51e728f94051607f0364796797e31a5

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/ebc9f2bfb51e728f94051607f0364796797e31a5
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20230519/0d80d906/attachment-0001.html>


More information about the ghc-commits mailing list