[Git][ghc/ghc][master] 3 commits: Apply NOINLINE pragmas to generated Typeable bindings
Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC Commits: e659610c by Duncan Coutts at 2026-03-09T12:08:35-04:00 Apply NOINLINE pragmas to generated Typeable bindings For context, see the existing Note [Grand plan for Typeable] and the Note [NOINLINE on generated Typeable bindings] added in the subsequent commit. This is about reducing the number of exported top level names and unfoldings, which reduces interface file sizes and reduces the number of global/dynamic linker symbols. Also accept the changed test output and metric decreases. Tests that record the phase output for type checking or for simplifier end up with different output: the generated bindings now have an Inline [~] annotation, and many top level names are now local rather than module-prefixed for export. Also accept the numerous metric decreases in compile_time/bytes allocated, and a few in compile_time/max_bytes_used. There's also one instance of a decrease in runtime/max_bytes_used but it's a ghci-way test and so presumably the reason is that it loads smaller .hi files and/or links fewer symbols. ------------------------- Metric Decrease: CoOpt_Singletons MultiLayerModulesTH_OneShot MultilineStringsPerf T10421 T10547 T12150 T12227 T12234 T12425 T13035 T13056 T13253 T13253-spj T15304 T15703 T16875 T17836b T17977b T18140 T18223 T18282 T18304 T18698a T18698b T18730 T18923 T20049 T21839c T24471 T24582 T24984 T3064 T4029 T5030 T5642 T5837 T6048 T9020 T9198 T9961 TcPlugin_RewritePerf WWRec hard_hole_fits mhu-perf ------------------------- - - - - - 67df5161 by Duncan Coutts at 2026-03-09T12:08:35-04:00 Add documentation Note [NOINLINE on generated Typeable bindings] and refer to it from the code and existing documentation. - - - - - c4ad6167 by Duncan Coutts at 2026-03-09T12:08:35-04:00 Switch existing note to "named wrinkle" style, (GPT1)..(GPT7) GPT = Grand plan for Typeable - - - - - 28 changed files: - compiler/GHC/Tc/Instance/Typeable.hs - testsuite/tests/deSugar/should_compile/T16615.stderr - testsuite/tests/deSugar/should_compile/T2431.stderr - testsuite/tests/dmdanal/should_compile/T16029.stdout - testsuite/tests/numeric/should_compile/T14170.stdout - testsuite/tests/numeric/should_compile/T14465.stdout - testsuite/tests/numeric/should_compile/T7116.stdout - testsuite/tests/roles/should_compile/Roles1.stderr - testsuite/tests/roles/should_compile/Roles13.stderr - testsuite/tests/roles/should_compile/Roles14.stderr - testsuite/tests/roles/should_compile/Roles2.stderr - testsuite/tests/roles/should_compile/Roles3.stderr - testsuite/tests/roles/should_compile/Roles4.stderr - testsuite/tests/roles/should_compile/T8958.stderr - testsuite/tests/simplCore/should_compile/OpaqueNoCastWW.stderr - testsuite/tests/simplCore/should_compile/T3717.stderr - testsuite/tests/simplCore/should_compile/T3772.stdout - testsuite/tests/simplCore/should_compile/T4908.stderr - testsuite/tests/simplCore/should_compile/T4930.stderr - testsuite/tests/simplCore/should_compile/T7360.stderr - testsuite/tests/simplCore/should_compile/T8274.stdout - testsuite/tests/simplCore/should_compile/T9400.stderr - testsuite/tests/simplCore/should_compile/noinline01.stderr - testsuite/tests/simplCore/should_compile/par01.stderr - testsuite/tests/th/TH_Roles2.stderr - testsuite/tests/typecheck/should_compile/T13032.stderr - testsuite/tests/typecheck/should_compile/T18406b.stderr - testsuite/tests/typecheck/should_compile/T18529.stderr Changes: ===================================== compiler/GHC/Tc/Instance/Typeable.hs ===================================== @@ -53,6 +53,7 @@ The overall plan is this: 1. Generate a binding for each module p:M (done in GHC.Tc.Instance.Typeable by mkModIdBindings) + {-# NOINLINE M.$trModule #-} -- See (GPT5) below M.$trModule :: GHC.Unit.Module M.$trModule = Module "p" "M" ("tr" is short for "type representation"; see GHC.Types) @@ -63,6 +64,7 @@ The overall plan is this: Record the Name M.$trModule in the tcg_tr_module field of TcGblEnv 2. Generate a binding for every data type declaration T in module M, + {-# NOINLINE M.$tcT #-} -- See (GPT5) below M.$tcT :: GHC.Types.TyCon M.$tcT = TyCon ...fingerprint info... $trModule @@ -96,48 +98,199 @@ The overall plan is this: There are many wrinkles: -* The timing of when we produce this bindings is rather important: they must be - defined after the rest of the module has been typechecked since we need to be - able to lookup Module and TyCon in the type environment and we may be - currently compiling GHC.Types (where they are defined). - -* GHC.Prim doesn't have any associated object code, so we need to put the - representations for types defined in this module elsewhere. We chose this - place to be GHC.Types. GHC.Tc.Instance.Typeable.mkPrimTypeableTodos is responsible for - injecting the bindings for the GHC.Prim representations when compiling - GHC.Types. - -* TyCon.tyConRepModOcc is responsible for determining where to find - the representation binding for a given type. This is where we handle - the special case for GHC.Prim. - -* To save space and reduce dependencies, we need use quite low-level - representations for TyCon and Module. See GHC.Types - Note [Runtime representation of modules and tycons] - -* The KindReps can unfortunately get quite large. Moreover, the simplifier will - float out various pieces of them, resulting in numerous top-level bindings. - Consequently we mark the KindRep bindings as noinline, ensuring that the - float-outs don't make it into the interface file. This is important since - there is generally little benefit to inlining KindReps and they would - otherwise strongly affect compiler performance. - -* In general there are lots of things of kind *, * -> *, and * -> * -> *. To - reduce the number of bindings we need to produce, we generate their KindReps - once in GHC.Types. These are referred to as "built-in" KindReps below. - -* Even though KindReps aren't inlined, this scheme still has more of an effect on - compilation time than I'd like. This is especially true in the case of - families of type constructors (e.g. tuples and unboxed sums). The problem is - particularly bad in the case of sums, since each arity-N tycon brings with it - N promoted datacons, each with a KindRep whose size also scales with N. - Consequently we currently simply don't allow sums to be Typeable. - - In general we might consider moving some or all of this generation logic back - to the solver since the performance hit we take in doing this at - type-definition time is non-trivial and Typeable isn't very widely used. This - is discussed in #13261. + (GPT1) The timing of when we produce this bindings is rather important: they + must be defined after the rest of the module has been typechecked + since we need to be able to lookup Module and TyCon in the type + environment and we may be currently compiling GHC.Types (where they + are defined). + + (GPT2) GHC.Prim doesn't have any associated object code, so we need to put + the representations for types defined in this module elsewhere. We + chose this place to be GHC.Types. + GHC.Tc.Instance.Typeable.mkPrimTypeableTodos is responsible for + injecting the bindings for the GHC.Prim representations when compiling + GHC.Types. + + (GPT3) TyCon.tyConRepModOcc is responsible for determining where to find the + representation binding for a given type. This is where we handle the + special case for GHC.Prim. + + (GPT4) To save space and reduce dependencies, we need use quite low-level + representations for TyCon and Module. See GHC.Types + Note [Runtime representation of modules and tycons] + + (GPT5) The unfoldings can get quite big, so we use NOINLINE to control it. + See Note [NOINLINE on generated Typeable bindings]. + + (GPT6) In general there are lots of things of kind *, * -> *, and * -> * -> *. + To reduce the number of bindings we need to produce, we generate their + KindReps once in GHC.Types. These are referred to as "built-in" + KindReps below. + + (GPT7) Even though KindReps aren't inlined, this scheme still has more of an + effect on compilation time than I'd like. This is especially true in + the case of families of type constructors (e.g. tuples and unboxed + sums). The problem is particularly bad in the case of sums, since each + arity-N tycon brings with it N promoted datacons, each with a KindRep + whose size also scales with N. Consequently we currently simply don't + allow sums to be Typeable. + + In general we might consider moving some or all of this generation + logic back to the solver since the performance hit we take in doing + this at type-definition time is non-trivial and Typeable isn't very + widely used. This is discussed in #13261. +-} + +{- Note [NOINLINE on generated Typeable bindings] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The short story is that we annotate all the generated Typeable bindings with +(the equivalent of) a NOINLINE pragma. This avoids an explosion of exported +top-level exported bindings. + +For the long story, consider the following module "M" in a package "pkg": + + module M (Foo(..), Bar(..)) where + + data Bar = MkBar + data Foo (k :: Bar) = MkFoo + +For this module, the generated module name binding starts out (-ddump-ds-preopt) +looking like this: + M.$trModule :: GHC.Unit.Module + M.$trModule = GHC.Types.Module + (GHC.Types.TrNameS "pkg"#) + (GHC.Types.TrNameS "M"#) + +but after the simplifier runs (-ddump-simpl), it will look like this: + + M.$trModule = M.$trModule3 M.$trModule1 + M.$trModule1 = GHC.Types.TrNameS M.$trModule2 + M.$trModule2 = "M"# + M.$trModule3 = GHC.Types.TrNameS M.$trModule4 + M.$trModule4 = "pkg"# + +While for the data types, there are a lot more bindings, and the explosion of +them after the simplifier is even greater. + +For Bar, the generated TyCon binding starts out looking like: + + M.$tcBar = + GHC.Types.TyCon + 12132242703551041979#Word64 + 4299988877040426036#Word64 + M.$trModule + (GHC.Types.TrNameS "Bar"#) + 0# + GHC.Types.krep$* -- reuse "built-in" kind rep from GHC.Types + +But we will *also* get a TcCon binding for the promoted type 'MkBar + + M.$tc'MkBar = + GHC.Types.TyCon + 10085502217043517326#Word64 + 15241743887701645856#Word64 + M.$trModule + (GHC.Types.TrNameS "'MkBar"#) + 0# + $krep_axs + +which needs a locally defined kind representation: + + $krep_axs = GHC.Types.KindRepTyConApp M.$tcBar [] + +For the data type with the more complex kind, the generated TyCon binding for +Foo and the promoted 'MkFoo look like: + + M.$tcFoo = + GHC.Types.TyCon + 13551215831514624777#Word64 + 7693314462125512072#Word64 + M.$trModule + (GHC.Types.TrNameS "Foo"#) + 0# + $krep_axr + + $krep_axr = GHC.Types.KindRepFun $krep_axs GHC.Types.krep$* + + M.$tc'MkFoo = + GHC.Types.TyCon + 16689947533794933931#Word64 + 14421717338642533175#Word64 + M.$trModule + (GHC.Types.TrNameS "'MkFoo"#) + 1# + $krep_axt + + $krep_axt = GHC.Types.KindRepTyConApp M.$tcFoo [$krep_axu] + $krep_axu = GHC.Types.$WKindRepVar (GHC.Types.I# 0#) + +After the simplifier runs and floats everything out, we get a lot of bindings: + +M.$tcBar = ... +M.$tcBar1 = ... +M.$tcBar2 = ... +M.$tcBar3 = ... + +M.$tc'MkBar = ... +M.$tc'MkBar1 = ... +M.$tc'MkBar2 = ... +M.$tc'MkBar3 = ... + +M.$tcFoo = ... +M.$tcFoo1 = ... +M.$tcFoo2 = ... +M.$tcFoo3 = ... + +M.$tc'MkFoo = ... +M.$tc'MkFoo1 = ... +M.$tc'MkFoo2 = ... +M.$tc'MkFoo3 = ... + +M.$krep_rxB = ... +M.$krep1_rxC = ... + +The simplifier has floated everything out. This is good because it means we end +up with fully static data and no code (which is compact and can be kept in the +read-only section of object files). On the other hand, there are now a *lot* of +top level names. Each one is fairly small, so the get chosen to have their +unfoldings exposed. This means all the top level names must be exported from +the module because they all get mentioned (transitively) in the unfoldings. + +Our original module with two data types and no functions ends up with 23 +exported names, and corresponding unfoldings! The benefit of exposing all these +unfoldings is minimal: there is generally little benefit to inlining TyCons, +KindReps, TrNames etc. The Typeable representations get used for comparisons, +but this does not benefit greatly from inlining. + +On the other hand, the cost to the compiler is substantial. This is a lot of +information to manage and put into the interface files. And if the unfoldings +are used at call sites, this costs further compile time, for little runtime +benefit. + +Furthermore, there is the number of linker symbols to consider. For example, in +the ghc-internal package, exposing all the unfoldings results in over 10% more +dynamic linker symbols being exported from the DSO (.so file). This has a time +cost at static link time and dynamic link time (program startup), and a space +cost. On Windows in particular, there is a hard limit of 64k on the number of +symbols that can be exported from a DLL. + +The solution is simple: annotate all the generated Typeable bindings with +(the equivalent of) a NOINLINE pragma. The simplifier still floats everything +out to the top level so that we end up with fully static data, but only the +original generated names get exported (without their unfoldings). For the +example module M above, that is just the 5 original names, rather than 23. So +only 5 entries in the interface files, and only 5 linker symbols. In the GHC +compiler performance test suite this is enough in some tests to shave 10-20% +off of bytes allocated and peak memory use, and enough to improve the geometric +mean by several percent. + +We use neverInlinePragma, which is technically a {-# INLINE [~] #-} pragma. +We use it in: + * mkModIdBindings for the module name binding; + * todoForTyCons for the TyCon bindings; + * getKindRep for kind representation bindings. -} -- | Generate the Typeable bindings for a module. This is the only @@ -191,6 +344,8 @@ mkModIdBindings ; mod_nm <- newGlobalBinder mod (mkVarOccFS (fsLit "$trModule")) loc ; trModuleTyCon <- tcLookupTyCon trModuleTyConName ; let mod_id = mkExportedVanillaId mod_nm (mkTyConApp trModuleTyCon []) + `setInlinePragma` neverInlinePragma + -- See Note [NOINLINE on generated Typeable bindings] ; mod_bind <- mkVarBind mod_id <$> mkModIdRHS mod ; tcg_env <- tcExtendGlobalValEnv [mod_id] getGblEnv @@ -241,6 +396,8 @@ todoForTyCons mod mod_id tycons = do trTyConTy <- mkTyConTy <$> tcLookupTyCon trTyConTyConName let mk_rep_id :: TyConRepName -> Id mk_rep_id rep_name = mkExportedVanillaId rep_name trTyConTy + `setInlinePragma` neverInlinePragma + -- See Note [NOINLINE on generated Typeable bindings] let typeable_tycons :: [TypeableTyCon] typeable_tycons = @@ -552,8 +709,7 @@ getKindRep stuff@(Stuff {..}) in_scope = go -- We need to construct a new KindRep binding | otherwise - = do -- Place a NOINLINE pragma on KindReps since they tend to be quite - -- large and bloat interface files. + = do -- See Note [NOINLINE on generated Typeable bindings] rep_bndr <- (`setInlinePragma` neverInlinePragma) <$> newSysLocalId (fsLit "$krep") ManyTy (mkTyConTy kindRepTyCon) ===================================== testsuite/tests/deSugar/should_compile/T16615.stderr ===================================== @@ -4,7 +4,7 @@ Result size of Desugar (after optimization) = {terms: 36, types: 13, coercions: 0, joins: 0/0} -- RHS size: {terms: 5, types: 0, coercions: 0, joins: 0/0} -T16615.$trModule :: GHC.Internal.Types.Module +T16615.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module [LclIdX, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, ===================================== testsuite/tests/deSugar/should_compile/T2431.stderr ===================================== @@ -29,7 +29,7 @@ $trModule4 :: GHC.Internal.Types.TrName $trModule4 = GHC.Internal.Types.TrNameS $trModule3 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -T2431.$trModule :: GHC.Internal.Types.Module +T2431.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module [GblId, Unf=OtherCon []] T2431.$trModule = GHC.Internal.Types.Module $trModule2 $trModule4 @@ -49,7 +49,7 @@ $tc:~:2 :: GHC.Internal.Types.TrName $tc:~:2 = GHC.Internal.Types.TrNameS $tc:~:1 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} -T2431.$tc:~: :: GHC.Internal.Types.TyCon +T2431.$tc:~: [InlPrag=[~]] :: GHC.Internal.Types.TyCon [GblId, Unf=OtherCon []] T2431.$tc:~: = GHC.Internal.Types.TyCon @@ -91,7 +91,7 @@ $tc'Refl2 :: GHC.Internal.Types.TrName $tc'Refl2 = GHC.Internal.Types.TrNameS $tc'Refl1 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} -T2431.$tc'Refl :: GHC.Internal.Types.TyCon +T2431.$tc'Refl [InlPrag=[~]] :: GHC.Internal.Types.TyCon [GblId, Unf=OtherCon []] T2431.$tc'Refl = GHC.Internal.Types.TyCon ===================================== testsuite/tests/dmdanal/should_compile/T16029.stdout ===================================== @@ -1,27 +1,27 @@ -T16029.$trModule4 :: GHC.Internal.Prim.Addr# -T16029.$trModule3 :: GHC.Internal.Types.TrName -T16029.$trModule2 :: GHC.Internal.Prim.Addr# -T16029.$trModule1 :: GHC.Internal.Types.TrName -T16029.$trModule :: GHC.Internal.Types.Module +$trModule1 :: GHC.Internal.Prim.Addr# +$trModule2 :: GHC.Internal.Types.TrName +$trModule3 :: GHC.Internal.Prim.Addr# +$trModule4 :: GHC.Internal.Types.TrName +T16029.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module $krep :: GHC.Internal.Types.KindRep -T16029.$tcS2 :: GHC.Internal.Prim.Addr# -T16029.$tcS1 :: GHC.Internal.Types.TrName -T16029.$tcS :: GHC.Internal.Types.TyCon +$tcS1 :: GHC.Internal.Prim.Addr# +$tcS2 :: GHC.Internal.Types.TrName +T16029.$tcS [InlPrag=[~]] :: GHC.Internal.Types.TyCon $krep1 :: GHC.Internal.Types.KindRep $krep2 :: GHC.Internal.Types.KindRep -T16029.$tc'MkS1 [InlPrag=[~]] :: GHC.Internal.Types.KindRep -T16029.$tc'MkS3 :: GHC.Internal.Prim.Addr# -T16029.$tc'MkS2 :: GHC.Internal.Types.TrName -T16029.$tc'MkS :: GHC.Internal.Types.TyCon -T16029.$tcT2 :: GHC.Internal.Prim.Addr# -T16029.$tcT1 :: GHC.Internal.Types.TrName -T16029.$tcT :: GHC.Internal.Types.TyCon $krep3 :: GHC.Internal.Types.KindRep +$tc'MkS1 :: GHC.Internal.Prim.Addr# +$tc'MkS2 :: GHC.Internal.Types.TrName +T16029.$tc'MkS [InlPrag=[~]] :: GHC.Internal.Types.TyCon +$tcT1 :: GHC.Internal.Prim.Addr# +$tcT2 :: GHC.Internal.Types.TrName +T16029.$tcT [InlPrag=[~]] :: GHC.Internal.Types.TyCon $krep4 :: GHC.Internal.Types.KindRep -T16029.$tc'MkT1 [InlPrag=[~]] :: GHC.Internal.Types.KindRep -T16029.$tc'MkT3 :: GHC.Internal.Prim.Addr# -T16029.$tc'MkT2 :: GHC.Internal.Types.TrName -T16029.$tc'MkT :: GHC.Internal.Types.TyCon +$krep5 :: GHC.Internal.Types.KindRep +$krep6 :: GHC.Internal.Types.KindRep +$tc'MkT1 :: GHC.Internal.Prim.Addr# +$tc'MkT2 :: GHC.Internal.Types.TrName +T16029.$tc'MkT [InlPrag=[~]] :: GHC.Internal.Types.TyCon :: GHC.Internal.Prim.Int# -> GHC.Internal.Prim.Int# = \ (ww :: GHC.Internal.Prim.Int#) -> g2 [InlPrag=[2]] :: T -> Int -> Int ===================================== testsuite/tests/numeric/should_compile/T14170.stdout ===================================== @@ -4,45 +4,29 @@ Result size of Tidy Core = {terms: 17, types: 6, coercions: 0, joins: 0/0} -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -NatVal.$trModule4 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 20 0}] -NatVal.$trModule4 = "main"# +$trModule1 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$trModule1 = "main"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -NatVal.$trModule3 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -NatVal.$trModule3 = GHC.Internal.Types.TrNameS NatVal.$trModule4 +$trModule2 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$trModule2 = GHC.Internal.Types.TrNameS $trModule1 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -NatVal.$trModule2 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 30 0}] -NatVal.$trModule2 = "NatVal"# +$trModule3 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$trModule3 = "NatVal"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -NatVal.$trModule1 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -NatVal.$trModule1 = GHC.Internal.Types.TrNameS NatVal.$trModule2 +$trModule4 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$trModule4 = GHC.Internal.Types.TrNameS $trModule3 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -NatVal.$trModule :: GHC.Internal.Types.Module -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -NatVal.$trModule - = GHC.Internal.Types.Module NatVal.$trModule3 NatVal.$trModule1 +NatVal.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module +[GblId, Unf=OtherCon []] +NatVal.$trModule = GHC.Internal.Types.Module $trModule2 $trModule4 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} foo :: Integer ===================================== testsuite/tests/numeric/should_compile/T14465.stdout ===================================== @@ -12,44 +12,29 @@ ten :: Natural ten = GHC.Internal.Bignum.Natural.NS 10## -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -M.$trModule4 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 20 0}] -M.$trModule4 = "main"# +$trModule1 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$trModule1 = "main"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -M.$trModule3 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -M.$trModule3 = GHC.Internal.Types.TrNameS M.$trModule4 +$trModule2 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$trModule2 = GHC.Internal.Types.TrNameS $trModule1 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -M.$trModule2 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 20 0}] -M.$trModule2 = "M"# +$trModule3 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$trModule3 = "M"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -M.$trModule1 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -M.$trModule1 = GHC.Internal.Types.TrNameS M.$trModule2 +$trModule4 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$trModule4 = GHC.Internal.Types.TrNameS $trModule3 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -M.$trModule :: GHC.Internal.Types.Module -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -M.$trModule = GHC.Internal.Types.Module M.$trModule3 M.$trModule1 +M.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module +[GblId, Unf=OtherCon []] +M.$trModule = GHC.Internal.Types.Module $trModule2 $trModule4 -- RHS size: {terms: 1, types: 1, coercions: 0, joins: 0/0} minusOne :: Natural ===================================== testsuite/tests/numeric/should_compile/T7116.stdout ===================================== @@ -4,45 +4,29 @@ Result size of Tidy Core = {terms: 36, types: 19, coercions: 0, joins: 0/0} -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T7116.$trModule4 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 20 0}] -T7116.$trModule4 = "main"# +$trModule1 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$trModule1 = "main"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T7116.$trModule3 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T7116.$trModule3 = GHC.Internal.Types.TrNameS T7116.$trModule4 +$trModule2 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$trModule2 = GHC.Internal.Types.TrNameS $trModule1 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T7116.$trModule2 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 30 0}] -T7116.$trModule2 = "T7116"# +$trModule3 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$trModule3 = "T7116"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T7116.$trModule1 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T7116.$trModule1 = GHC.Internal.Types.TrNameS T7116.$trModule2 +$trModule4 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$trModule4 = GHC.Internal.Types.TrNameS $trModule3 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -T7116.$trModule :: GHC.Internal.Types.Module -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T7116.$trModule - = GHC.Internal.Types.Module T7116.$trModule3 T7116.$trModule1 +T7116.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module +[GblId, Unf=OtherCon []] +T7116.$trModule = GHC.Internal.Types.Module $trModule2 $trModule4 -- RHS size: {terms: 8, types: 3, coercions: 0, joins: 0/0} dr :: Double -> Double ===================================== testsuite/tests/roles/should_compile/Roles1.stderr ===================================== @@ -20,65 +20,65 @@ DATA CONSTRUCTORS K2 :: forall a. a -> T2 a K1 :: forall a. a -> T1 a Dependent modules: [] -Dependent packages: [(normal, base-4.21.0.0)] +Dependent packages: [(normal, base-4.22.0.0)] ==================== Typechecker ==================== -Roles1.$tcT7 +Roles1.$tcT7 [InlPrag=[~]] = GHC.Internal.Types.TyCon 178606230775360129#Word64 14564382578551945561#Word64 Roles1.$trModule (GHC.Internal.Types.TrNameS "T7"#) 1# $krep -Roles1.$tc'K7 +Roles1.$tc'K7 [InlPrag=[~]] = GHC.Internal.Types.TyCon 15901479081375327280#Word64 4842873210599704617#Word64 Roles1.$trModule (GHC.Internal.Types.TrNameS "'K7"#) 3# $krep -Roles1.$tcT6 +Roles1.$tcT6 [InlPrag=[~]] = GHC.Internal.Types.TyCon 7244893995195634045#Word64 6882827069359931041#Word64 Roles1.$trModule (GHC.Internal.Types.TrNameS "T6"#) 1# $krep -Roles1.$tc'K6 +Roles1.$tc'K6 [InlPrag=[~]] = GHC.Internal.Types.TyCon 13928703131159360198#Word64 9274401506945696896#Word64 Roles1.$trModule (GHC.Internal.Types.TrNameS "'K6"#) 2# $krep -Roles1.$tcT5 +Roles1.$tcT5 [InlPrag=[~]] = GHC.Internal.Types.TyCon 12033401645911719002#Word64 6369139038321702301#Word64 Roles1.$trModule (GHC.Internal.Types.TrNameS "T5"#) 0# GHC.Internal.Types.krep$*Arr* -Roles1.$tc'K5 +Roles1.$tc'K5 [InlPrag=[~]] = GHC.Internal.Types.TyCon 5548842497263642061#Word64 18349261927117571882#Word64 Roles1.$trModule (GHC.Internal.Types.TrNameS "'K5"#) 1# $krep -Roles1.$tcT4 +Roles1.$tcT4 [InlPrag=[~]] = GHC.Internal.Types.TyCon 15834077582937152787#Word64 17059037094835388922#Word64 Roles1.$trModule (GHC.Internal.Types.TrNameS "T4"#) 0# $krep -Roles1.$tc'K4 +Roles1.$tc'K4 [InlPrag=[~]] = GHC.Internal.Types.TyCon 10188453925450404995#Word64 4762093850599364042#Word64 Roles1.$trModule (GHC.Internal.Types.TrNameS "'K4"#) 2# $krep -Roles1.$tcT3 +Roles1.$tcT3 [InlPrag=[~]] = GHC.Internal.Types.TyCon 13341737262627465733#Word64 14527452670364737316#Word64 Roles1.$trModule (GHC.Internal.Types.TrNameS "T3"#) 1# $krep -Roles1.$tc'K3 +Roles1.$tc'K3 [InlPrag=[~]] = GHC.Internal.Types.TyCon 14534968069054730342#Word64 6860808298964464185#Word64 Roles1.$trModule (GHC.Internal.Types.TrNameS "'K3"#) 2# $krep -Roles1.$tcT2 +Roles1.$tcT2 [InlPrag=[~]] = GHC.Internal.Types.TyCon 12900773996789723956#Word64 9313087549503346504#Word64 Roles1.$trModule (GHC.Internal.Types.TrNameS "T2"#) 0# GHC.Internal.Types.krep$*Arr* -Roles1.$tc'K2 +Roles1.$tc'K2 [InlPrag=[~]] = GHC.Internal.Types.TyCon 11054915488163123841#Word64 10799789256744079155#Word64 Roles1.$trModule (GHC.Internal.Types.TrNameS "'K2"#) 1# $krep -Roles1.$tcT1 +Roles1.$tcT1 [InlPrag=[~]] = GHC.Internal.Types.TyCon 13228660854624297872#Word64 14494320157476678712#Word64 Roles1.$trModule (GHC.Internal.Types.TrNameS "T1"#) 0# GHC.Internal.Types.krep$*Arr* -Roles1.$tc'K1 +Roles1.$tc'K1 [InlPrag=[~]] = GHC.Internal.Types.TyCon 1265606750138351672#Word64 7033043930969109074#Word64 Roles1.$trModule (GHC.Internal.Types.TrNameS "'K1"#) 1# $krep @@ -118,7 +118,7 @@ $krep [InlPrag=[~]] = GHC.Internal.Types.KindRepTyConApp Roles1.$tcT2 ((:) $krep []) $krep [InlPrag=[~]] = GHC.Internal.Types.KindRepTyConApp Roles1.$tcT1 ((:) $krep []) -Roles1.$trModule +Roles1.$trModule [InlPrag=[~]] = GHC.Internal.Types.Module (GHC.Internal.Types.TrNameS "main"#) (GHC.Internal.Types.TrNameS "Roles1"#) ===================================== testsuite/tests/roles/should_compile/Roles13.stderr ===================================== @@ -37,7 +37,7 @@ $trModule4 :: GHC.Internal.Types.TrName $trModule4 = GHC.Internal.Types.TrNameS $trModule3 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -Roles13.$trModule :: GHC.Internal.Types.Module +Roles13.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module [GblId, Unf=OtherCon []] Roles13.$trModule = GHC.Internal.Types.Module $trModule2 $trModule4 @@ -65,7 +65,7 @@ $tcAge2 :: GHC.Internal.Types.TrName $tcAge2 = GHC.Internal.Types.TrNameS $tcAge1 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} -Roles13.$tcAge :: GHC.Internal.Types.TyCon +Roles13.$tcAge [InlPrag=[~]] :: GHC.Internal.Types.TyCon [GblId, Unf=OtherCon []] Roles13.$tcAge = GHC.Internal.Types.TyCon @@ -99,7 +99,7 @@ $tc'MkAge2 :: GHC.Internal.Types.TrName $tc'MkAge2 = GHC.Internal.Types.TrNameS $tc'MkAge1 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} -Roles13.$tc'MkAge :: GHC.Internal.Types.TyCon +Roles13.$tc'MkAge [InlPrag=[~]] :: GHC.Internal.Types.TyCon [GblId, Unf=OtherCon []] Roles13.$tc'MkAge = GHC.Internal.Types.TyCon @@ -121,7 +121,7 @@ $tcWrap2 :: GHC.Internal.Types.TrName $tcWrap2 = GHC.Internal.Types.TrNameS $tcWrap1 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} -Roles13.$tcWrap :: GHC.Internal.Types.TyCon +Roles13.$tcWrap [InlPrag=[~]] :: GHC.Internal.Types.TyCon [GblId, Unf=OtherCon []] Roles13.$tcWrap = GHC.Internal.Types.TyCon @@ -162,7 +162,7 @@ $tc'MkWrap2 :: GHC.Internal.Types.TrName $tc'MkWrap2 = GHC.Internal.Types.TrNameS $tc'MkWrap1 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} -Roles13.$tc'MkWrap :: GHC.Internal.Types.TyCon +Roles13.$tc'MkWrap [InlPrag=[~]] :: GHC.Internal.Types.TyCon [GblId, Unf=OtherCon []] Roles13.$tc'MkWrap = GHC.Internal.Types.TyCon ===================================== testsuite/tests/roles/should_compile/Roles14.stderr ===================================== @@ -4,14 +4,14 @@ TYPE CONSTRUCTORS class C2{1} :: * -> Constraint roles representational Dependent modules: [] -Dependent packages: [(normal, base-4.21.0.0)] +Dependent packages: [(normal, base-4.22.0.0)] ==================== Typechecker ==================== -Roles12.$tcC2 +Roles12.$tcC2 [InlPrag=[~]] = GHC.Internal.Types.TyCon 7996680154108933333#Word64 9454227235464419996#Word64 Roles12.$trModule (GHC.Internal.Types.TrNameS "C2"#) 0# $krep -Roles12.$tc'C:C2 +Roles12.$tc'C:C2 [InlPrag=[~]] = GHC.Internal.Types.TyCon 7087988437584478859#Word64 11477953550142401435#Word64 Roles12.$trModule (GHC.Internal.Types.TrNameS "'C:C2"#) 1# $krep @@ -23,7 +23,7 @@ $krep [InlPrag=[~]] = GHC.Internal.Types.KindRepFun $krep $krep $krep [InlPrag=[~]] = GHC.Internal.Types.KindRepFun GHC.Internal.Types.krep$* GHC.Internal.Types.krep$Constraint -Roles12.$trModule +Roles12.$trModule [InlPrag=[~]] = GHC.Internal.Types.Module (GHC.Internal.Types.TrNameS "main"#) (GHC.Internal.Types.TrNameS "Roles12"#) ===================================== testsuite/tests/roles/should_compile/Roles2.stderr ===================================== @@ -6,24 +6,24 @@ DATA CONSTRUCTORS K2 :: forall a. FunPtr a -> T2 a K1 :: forall a. IO a -> T1 a Dependent modules: [] -Dependent packages: [(normal, base-4.21.0.0)] +Dependent packages: [(normal, base-4.22.0.0)] ==================== Typechecker ==================== -Roles2.$tcT2 +Roles2.$tcT2 [InlPrag=[~]] = GHC.Internal.Types.TyCon 9065817229114433861#Word64 13399581642971864140#Word64 Roles2.$trModule (GHC.Internal.Types.TrNameS "T2"#) 0# GHC.Internal.Types.krep$*Arr* -Roles2.$tc'K2 +Roles2.$tc'K2 [InlPrag=[~]] = GHC.Internal.Types.TyCon 17395957229042313563#Word64 12263882107019815181#Word64 Roles2.$trModule (GHC.Internal.Types.TrNameS "'K2"#) 1# $krep -Roles2.$tcT1 +Roles2.$tcT1 [InlPrag=[~]] = GHC.Internal.Types.TyCon 10310640733256438505#Word64 9162099558816022096#Word64 Roles2.$trModule (GHC.Internal.Types.TrNameS "T1"#) 0# GHC.Internal.Types.krep$*Arr* -Roles2.$tc'K1 +Roles2.$tc'K1 [InlPrag=[~]] = GHC.Internal.Types.TyCon 16530009231990968394#Word64 11761390951471299534#Word64 Roles2.$trModule (GHC.Internal.Types.TrNameS "'K1"#) 1# $krep @@ -40,7 +40,7 @@ $krep [InlPrag=[~]] GHC.Internal.Types.$tcIO ((:) $krep []) $krep [InlPrag=[~]] = GHC.Internal.Types.KindRepTyConApp Roles2.$tcT1 ((:) $krep []) -Roles2.$trModule +Roles2.$trModule [InlPrag=[~]] = GHC.Internal.Types.Module (GHC.Internal.Types.TrNameS "main"#) (GHC.Internal.Types.TrNameS "Roles2"#) ===================================== testsuite/tests/roles/should_compile/Roles3.stderr ===================================== @@ -16,30 +16,30 @@ TYPE CONSTRUCTORS roles nominal type synonym Syn2{1} :: * -> * Dependent modules: [] -Dependent packages: [(normal, base-4.21.0.0)] +Dependent packages: [(normal, base-4.22.0.0)] ==================== Typechecker ==================== -Roles3.$tcC4 +Roles3.$tcC4 [InlPrag=[~]] = GHC.Internal.Types.TyCon 6800596812149592130#Word64 15513203864133461281#Word64 Roles3.$trModule (GHC.Internal.Types.TrNameS "C4"#) 0# $krep -Roles3.$tcC3 +Roles3.$tcC3 [InlPrag=[~]] = GHC.Internal.Types.TyCon 5076086601454991970#Word64 10299714674904836194#Word64 Roles3.$trModule (GHC.Internal.Types.TrNameS "C3"#) 0# $krep -Roles3.$tcC2 +Roles3.$tcC2 [InlPrag=[~]] = GHC.Internal.Types.TyCon 7902873224172523979#Word64 11840994447152209031#Word64 Roles3.$trModule (GHC.Internal.Types.TrNameS "C2"#) 0# $krep -Roles3.$tc'C:C2 +Roles3.$tc'C:C2 [InlPrag=[~]] = GHC.Internal.Types.TyCon 11218882737915989529#Word64 9454910899374397367#Word64 Roles3.$trModule (GHC.Internal.Types.TrNameS "'C:C2"#) 2# $krep -Roles3.$tcC1 +Roles3.$tcC1 [InlPrag=[~]] = GHC.Internal.Types.TyCon 11013585501375994163#Word64 16371608655219610659#Word64 Roles3.$trModule (GHC.Internal.Types.TrNameS "C1"#) 0# $krep -Roles3.$tc'C:C1 +Roles3.$tc'C:C1 [InlPrag=[~]] = GHC.Internal.Types.TyCon 4508088879886988796#Word64 13962145553903222779#Word64 Roles3.$trModule (GHC.Internal.Types.TrNameS "'C:C1"#) 1# $krep @@ -64,7 +64,7 @@ $krep [InlPrag=[~]] = GHC.Internal.Types.KindRepFun GHC.Internal.Types.krep$* GHC.Internal.Types.krep$Constraint $krep [InlPrag=[~]] = GHC.Internal.Types.KindRepFun $krep $krep -Roles3.$trModule +Roles3.$trModule [InlPrag=[~]] = GHC.Internal.Types.Module (GHC.Internal.Types.TrNameS "main"#) (GHC.Internal.Types.TrNameS "Roles3"#) ===================================== testsuite/tests/roles/should_compile/Roles4.stderr ===================================== @@ -6,22 +6,22 @@ TYPE CONSTRUCTORS class C3{1} :: * -> Constraint type synonym Syn1{1} :: * -> * Dependent modules: [] -Dependent packages: [(normal, base-4.21.0.0)] +Dependent packages: [(normal, base-4.22.0.0)] ==================== Typechecker ==================== -Roles4.$tcC3 +Roles4.$tcC3 [InlPrag=[~]] = GHC.Internal.Types.TyCon 7508642517340826358#Word64 16938219270597865136#Word64 Roles4.$trModule (GHC.Internal.Types.TrNameS "C3"#) 0# $krep -Roles4.$tc'C:C3 +Roles4.$tc'C:C3 [InlPrag=[~]] = GHC.Internal.Types.TyCon 3133378316178104365#Word64 15809386433947157376#Word64 Roles4.$trModule (GHC.Internal.Types.TrNameS "'C:C3"#) 1# $krep -Roles4.$tcC1 +Roles4.$tcC1 [InlPrag=[~]] = GHC.Internal.Types.TyCon 13392243382482428602#Word64 1780037961948725012#Word64 Roles4.$trModule (GHC.Internal.Types.TrNameS "C1"#) 0# $krep -Roles4.$tc'C:C1 +Roles4.$tc'C:C1 [InlPrag=[~]] = GHC.Internal.Types.TyCon 3870707671502302648#Word64 10631907186261837450#Word64 Roles4.$trModule (GHC.Internal.Types.TrNameS "'C:C1"#) 1# $krep @@ -40,7 +40,7 @@ $krep [InlPrag=[~]] $krep [InlPrag=[~]] = GHC.Internal.Types.KindRepTyConApp GHC.Internal.Types.$tcList ((:) $krep []) -Roles4.$trModule +Roles4.$trModule [InlPrag=[~]] = GHC.Internal.Types.Module (GHC.Internal.Types.TrNameS "main"#) (GHC.Internal.Types.TrNameS "Roles4"#) ===================================== testsuite/tests/roles/should_compile/T8958.stderr ===================================== @@ -18,33 +18,33 @@ CLASS INSTANCES instance [incoherent] Representational a -- Defined at T8958.hs:11:10 Dependent modules: [] -Dependent packages: [(normal, base-4.21.0.0)] +Dependent packages: [(normal, base-4.22.0.0)] ==================== Typechecker ==================== -T8958.$tcMap +T8958.$tcMap [InlPrag=[~]] = GHC.Internal.Types.TyCon 16542473435673943392#Word64 5374201132143305512#Word64 T8958.$trModule (GHC.Internal.Types.TrNameS "Map"#) 0# GHC.Internal.Types.krep$*->*->* -T8958.$tc'MkMap +T8958.$tc'MkMap [InlPrag=[~]] = GHC.Internal.Types.TyCon 2942839876828444488#Word64 3989137838066763457#Word64 T8958.$trModule (GHC.Internal.Types.TrNameS "'MkMap"#) 2# $krep -T8958.$tcRepresentational +T8958.$tcRepresentational [InlPrag=[~]] = GHC.Internal.Types.TyCon 12809567151893673426#Word64 12159693688248149156#Word64 T8958.$trModule (GHC.Internal.Types.TrNameS "Representational"#) 0# $krep -T8958.$tc'C:Representational +T8958.$tc'C:Representational [InlPrag=[~]] = GHC.Internal.Types.TyCon 2358772282532242424#Word64 5444038897914446879#Word64 T8958.$trModule (GHC.Internal.Types.TrNameS "'C:Representational"#) 1# $krep -T8958.$tcNominal +T8958.$tcNominal [InlPrag=[~]] = GHC.Internal.Types.TyCon 12224997609886144634#Word64 9866011944332051160#Word64 T8958.$trModule (GHC.Internal.Types.TrNameS "Nominal"#) 0# $krep -T8958.$tc'C:Nominal +T8958.$tc'C:Nominal [InlPrag=[~]] = GHC.Internal.Types.TyCon 10562260635335201742#Word64 1215478186250709459#Word64 T8958.$trModule (GHC.Internal.Types.TrNameS "'C:Nominal"#) 1# $krep @@ -83,7 +83,7 @@ $krep [InlPrag=[~]] T8958.$tcNominal ((:) @GHC.Internal.Types.KindRep $krep [] @GHC.Internal.Types.KindRep) -T8958.$trModule +T8958.$trModule [InlPrag=[~]] = GHC.Internal.Types.Module (GHC.Internal.Types.TrNameS "main"#) (GHC.Internal.Types.TrNameS "T8958"#) ===================================== testsuite/tests/simplCore/should_compile/OpaqueNoCastWW.stderr ===================================== @@ -62,7 +62,7 @@ $trModule4 :: GHC.Internal.Types.TrName $trModule4 = GHC.Internal.Types.TrNameS $trModule3 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -OpaqueNoCastWW.$trModule :: GHC.Internal.Types.Module +OpaqueNoCastWW.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module [GblId, Unf=OtherCon []] OpaqueNoCastWW.$trModule = GHC.Internal.Types.Module $trModule2 $trModule4 @@ -105,7 +105,7 @@ $tcSigned2 :: GHC.Internal.Types.TrName $tcSigned2 = GHC.Internal.Types.TrNameS $tcSigned1 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} -OpaqueNoCastWW.$tcSigned :: GHC.Internal.Types.TyCon +OpaqueNoCastWW.$tcSigned [InlPrag=[~]] :: GHC.Internal.Types.TyCon [GblId, Unf=OtherCon []] OpaqueNoCastWW.$tcSigned = GHC.Internal.Types.TyCon @@ -148,7 +148,7 @@ $tc'S2 :: GHC.Internal.Types.TrName $tc'S2 = GHC.Internal.Types.TrNameS $tc'S1 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} -OpaqueNoCastWW.$tc'S :: GHC.Internal.Types.TyCon +OpaqueNoCastWW.$tc'S [InlPrag=[~]] :: GHC.Internal.Types.TyCon [GblId, Unf=OtherCon []] OpaqueNoCastWW.$tc'S = GHC.Internal.Types.TyCon ===================================== testsuite/tests/simplCore/should_compile/T3717.stderr ===================================== @@ -4,45 +4,29 @@ Result size of Tidy Core = {terms: 36, types: 15, coercions: 0, joins: 0/0} -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T3717.$trModule4 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 20 0}] -T3717.$trModule4 = "main"# +$trModule1 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$trModule1 = "main"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T3717.$trModule3 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T3717.$trModule3 = GHC.Internal.Types.TrNameS T3717.$trModule4 +$trModule2 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$trModule2 = GHC.Internal.Types.TrNameS $trModule1 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T3717.$trModule2 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 30 0}] -T3717.$trModule2 = "T3717"# +$trModule3 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$trModule3 = "T3717"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T3717.$trModule1 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T3717.$trModule1 = GHC.Internal.Types.TrNameS T3717.$trModule2 +$trModule4 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$trModule4 = GHC.Internal.Types.TrNameS $trModule3 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -T3717.$trModule :: GHC.Internal.Types.Module -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T3717.$trModule - = GHC.Internal.Types.Module T3717.$trModule3 T3717.$trModule1 +T3717.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module +[GblId, Unf=OtherCon []] +T3717.$trModule = GHC.Internal.Types.Module $trModule2 $trModule4 Rec { -- RHS size: {terms: 10, types: 2, coercions: 0, joins: 0/0} ===================================== testsuite/tests/simplCore/should_compile/T3772.stdout ===================================== @@ -4,45 +4,29 @@ Result size of Tidy Core = {terms: 46, types: 19, coercions: 0, joins: 0/0} -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T3772.$trModule4 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 20 0}] -T3772.$trModule4 = "main"# +$trModule1 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$trModule1 = "main"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T3772.$trModule3 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T3772.$trModule3 = GHC.Internal.Types.TrNameS T3772.$trModule4 +$trModule2 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$trModule2 = GHC.Internal.Types.TrNameS $trModule1 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T3772.$trModule2 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 30 0}] -T3772.$trModule2 = "T3772"# +$trModule3 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$trModule3 = "T3772"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T3772.$trModule1 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T3772.$trModule1 = GHC.Internal.Types.TrNameS T3772.$trModule2 +$trModule4 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$trModule4 = GHC.Internal.Types.TrNameS $trModule3 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -T3772.$trModule :: GHC.Internal.Types.Module -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T3772.$trModule - = GHC.Internal.Types.Module T3772.$trModule3 T3772.$trModule1 +T3772.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module +[GblId, Unf=OtherCon []] +T3772.$trModule = GHC.Internal.Types.Module $trModule2 $trModule4 Rec { -- RHS size: {terms: 10, types: 2, coercions: 0, joins: 0/0} ===================================== testsuite/tests/simplCore/should_compile/T4908.stderr ===================================== @@ -4,45 +4,29 @@ Result size of Tidy Core = {terms: 65, types: 35, coercions: 0, joins: 0/0} -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T4908.$trModule4 :: Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 20 0}] -T4908.$trModule4 = "main"# +$trModule1 :: Addr# +[GblId, Unf=OtherCon []] +$trModule1 = "main"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T4908.$trModule3 :: TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T4908.$trModule3 = GHC.Internal.Types.TrNameS T4908.$trModule4 +$trModule2 :: TrName +[GblId, Unf=OtherCon []] +$trModule2 = GHC.Internal.Types.TrNameS $trModule1 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T4908.$trModule2 :: Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 30 0}] -T4908.$trModule2 = "T4908"# +$trModule3 :: Addr# +[GblId, Unf=OtherCon []] +$trModule3 = "T4908"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T4908.$trModule1 :: TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T4908.$trModule1 = GHC.Internal.Types.TrNameS T4908.$trModule2 +$trModule4 :: TrName +[GblId, Unf=OtherCon []] +$trModule4 = GHC.Internal.Types.TrNameS $trModule3 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -T4908.$trModule :: Module -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T4908.$trModule - = GHC.Internal.Types.Module T4908.$trModule3 T4908.$trModule1 +T4908.$trModule [InlPrag=[~]] :: Module +[GblId, Unf=OtherCon []] +T4908.$trModule = GHC.Internal.Types.Module $trModule2 $trModule4 Rec { -- RHS size: {terms: 19, types: 5, coercions: 0, joins: 0/0} ===================================== testsuite/tests/simplCore/should_compile/T4930.stderr ===================================== @@ -4,45 +4,29 @@ Result size of Tidy Core = {terms: 43, types: 16, coercions: 0, joins: 0/0} -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T4930.$trModule4 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 20 0}] -T4930.$trModule4 = "main"# +$trModule1 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$trModule1 = "main"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T4930.$trModule3 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T4930.$trModule3 = GHC.Internal.Types.TrNameS T4930.$trModule4 +$trModule2 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$trModule2 = GHC.Internal.Types.TrNameS $trModule1 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T4930.$trModule2 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 30 0}] -T4930.$trModule2 = "T4930"# +$trModule3 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$trModule3 = "T4930"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T4930.$trModule1 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T4930.$trModule1 = GHC.Internal.Types.TrNameS T4930.$trModule2 +$trModule4 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$trModule4 = GHC.Internal.Types.TrNameS $trModule3 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -T4930.$trModule :: GHC.Internal.Types.Module -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T4930.$trModule - = GHC.Internal.Types.Module T4930.$trModule3 T4930.$trModule1 +T4930.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module +[GblId, Unf=OtherCon []] +T4930.$trModule = GHC.Internal.Types.Module $trModule2 $trModule4 Rec { -- RHS size: {terms: 17, types: 3, coercions: 0, joins: 0/0} ===================================== testsuite/tests/simplCore/should_compile/T7360.stderr ===================================== @@ -63,45 +63,29 @@ fun2 }) -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T7360.$trModule4 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 20 0}] -T7360.$trModule4 = "main"# +$trModule1 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$trModule1 = "main"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T7360.$trModule3 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T7360.$trModule3 = GHC.Internal.Types.TrNameS T7360.$trModule4 +$trModule2 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$trModule2 = GHC.Internal.Types.TrNameS $trModule1 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T7360.$trModule2 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 30 0}] -T7360.$trModule2 = "T7360"# +$trModule3 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$trModule3 = "T7360"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T7360.$trModule1 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T7360.$trModule1 = GHC.Internal.Types.TrNameS T7360.$trModule2 +$trModule4 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$trModule4 = GHC.Internal.Types.TrNameS $trModule3 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -T7360.$trModule :: GHC.Internal.Types.Module -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T7360.$trModule - = GHC.Internal.Types.Module T7360.$trModule3 T7360.$trModule1 +T7360.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module +[GblId, Unf=OtherCon []] +T7360.$trModule = GHC.Internal.Types.Module $trModule2 $trModule4 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0} $krep :: GHC.Internal.Types.KindRep @@ -112,140 +96,104 @@ $krep (GHC.Internal.Types.[] @GHC.Internal.Types.KindRep) -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T7360.$tcFoo2 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 20 0}] -T7360.$tcFoo2 = "Foo"# +$tcFoo1 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$tcFoo1 = "Foo"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T7360.$tcFoo1 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T7360.$tcFoo1 = GHC.Internal.Types.TrNameS T7360.$tcFoo2 +$tcFoo2 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$tcFoo2 = GHC.Internal.Types.TrNameS $tcFoo1 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} -T7360.$tcFoo :: GHC.Internal.Types.TyCon -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] +T7360.$tcFoo [InlPrag=[~]] :: GHC.Internal.Types.TyCon +[GblId, Unf=OtherCon []] T7360.$tcFoo = GHC.Internal.Types.TyCon 1581370841583180512#Word64 13291578023368289311#Word64 T7360.$trModule - T7360.$tcFoo1 + $tcFoo2 0# GHC.Internal.Types.krep$* -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0} -T7360.$tc'Foo4 [InlPrag=[~]] :: GHC.Internal.Types.KindRep +$krep1 :: GHC.Internal.Types.KindRep [GblId, Unf=OtherCon []] -T7360.$tc'Foo4 +$krep1 = GHC.Internal.Types.KindRepTyConApp T7360.$tcFoo (GHC.Internal.Types.[] @GHC.Internal.Types.KindRep) -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T7360.$tc'Foo6 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 30 0}] -T7360.$tc'Foo6 = "'Foo1"# +$tc'Foo4 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$tc'Foo4 = "'Foo1"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T7360.$tc'Foo5 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T7360.$tc'Foo5 = GHC.Internal.Types.TrNameS T7360.$tc'Foo6 +$tc'Foo5 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$tc'Foo5 = GHC.Internal.Types.TrNameS $tc'Foo4 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} -T7360.$tc'Foo1 :: GHC.Internal.Types.TyCon -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] +T7360.$tc'Foo1 [InlPrag=[~]] :: GHC.Internal.Types.TyCon +[GblId, Unf=OtherCon []] T7360.$tc'Foo1 = GHC.Internal.Types.TyCon 3986951253261644518#Word64 2515097940992351150#Word64 T7360.$trModule - T7360.$tc'Foo5 + $tc'Foo5 0# - T7360.$tc'Foo4 + $krep1 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T7360.$tc'Foo8 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 30 0}] -T7360.$tc'Foo8 = "'Foo2"# +$tc'Foo6 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$tc'Foo6 = "'Foo2"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T7360.$tc'Foo7 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T7360.$tc'Foo7 = GHC.Internal.Types.TrNameS T7360.$tc'Foo8 +$tc'Foo7 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$tc'Foo7 = GHC.Internal.Types.TrNameS $tc'Foo6 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} -T7360.$tc'Foo2 :: GHC.Internal.Types.TyCon -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] +T7360.$tc'Foo2 [InlPrag=[~]] :: GHC.Internal.Types.TyCon +[GblId, Unf=OtherCon []] T7360.$tc'Foo2 = GHC.Internal.Types.TyCon 17325079864060690428#Word64 2969742457748208427#Word64 T7360.$trModule - T7360.$tc'Foo7 + $tc'Foo7 0# - T7360.$tc'Foo4 + $krep1 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -T7360.$tc'Foo9 [InlPrag=[~]] :: GHC.Internal.Types.KindRep +$krep2 :: GHC.Internal.Types.KindRep [GblId, Unf=OtherCon []] -T7360.$tc'Foo9 = GHC.Internal.Types.KindRepFun $krep T7360.$tc'Foo4 +$krep2 = GHC.Internal.Types.KindRepFun $krep $krep1 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -T7360.$tc'Foo11 :: GHC.Internal.Prim.Addr# -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 30 0}] -T7360.$tc'Foo11 = "'Foo3"# +$tc'Foo8 :: GHC.Internal.Prim.Addr# +[GblId, Unf=OtherCon []] +$tc'Foo8 = "'Foo3"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -T7360.$tc'Foo10 :: GHC.Internal.Types.TrName -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] -T7360.$tc'Foo10 = GHC.Internal.Types.TrNameS T7360.$tc'Foo11 +$tc'Foo9 :: GHC.Internal.Types.TrName +[GblId, Unf=OtherCon []] +$tc'Foo9 = GHC.Internal.Types.TrNameS $tc'Foo8 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} -T7360.$tc'Foo3 :: GHC.Internal.Types.TyCon -[GblId, - Unf=Unf{Src=<vanilla>, TopLvl=True, - Value=True, ConLike=True, WorkFree=True, Expandable=True, - Guidance=IF_ARGS [] 10 10}] +T7360.$tc'Foo3 [InlPrag=[~]] :: GHC.Internal.Types.TyCon +[GblId, Unf=OtherCon []] T7360.$tc'Foo3 = GHC.Internal.Types.TyCon 3674231676522181654#Word64 2694749919371021431#Word64 T7360.$trModule - T7360.$tc'Foo10 + $tc'Foo9 0# - T7360.$tc'Foo9 + $krep2 ===================================== testsuite/tests/simplCore/should_compile/T8274.stdout ===================================== @@ -1,23 +1,23 @@ p = T8274.Positives 42# 4.23# 4.23## '4'# 4## n = T8274.Negatives -4# -4.0# -4.0## -T8274.$trModule4 :: Addr# -T8274.$trModule4 = "main"# -T8274.$trModule2 :: Addr# -T8274.$trModule2 = "T8274"# +$trModule1 :: Addr# +$trModule1 = "main"# +$trModule3 :: Addr# +$trModule3 = "T8274"# $krep = GHC.Internal.Types.KindRepTyConApp GHC.Internal.Types.$tcWord# (GHC.Internal.Types.[] @GHC.Internal.Types.KindRep) $krep1 = GHC.Internal.Types.KindRepTyConApp GHC.Internal.Types.$tcChar# (GHC.Internal.Types.[] @GHC.Internal.Types.KindRep) $krep2 = GHC.Internal.Types.KindRepTyConApp GHC.Internal.Types.$tcDouble# (GHC.Internal.Types.[] @GHC.Internal.Types.KindRep) $krep3 = GHC.Internal.Types.KindRepTyConApp GHC.Internal.Types.$tcFloat# (GHC.Internal.Types.[] @GHC.Internal.Types.KindRep) $krep4 = GHC.Internal.Types.KindRepTyConApp GHC.Internal.Types.$tcInt# (GHC.Internal.Types.[] @GHC.Internal.Types.KindRep) -T8274.$tcP2 :: Addr# -T8274.$tcP2 = "P"# -T8274.$tcP = GHC.Internal.Types.TyCon 7483823267324216774#Word64 12197132127820124256#Word64 T8274.$trModule T8274.$tcP1 0# GHC.Internal.Types.krep$* -T8274.$tc'Positives3 :: Addr# -T8274.$tc'Positives3 = "'Positives"# -T8274.$tc'Positives = GHC.Internal.Types.TyCon 14886798270706315033#Word64 15735393004803600911#Word64 T8274.$trModule T8274.$tc'Positives2 0# T8274.$tc'Positives1 -T8274.$tcN2 :: Addr# -T8274.$tcN2 = "N"# -T8274.$tcN = GHC.Internal.Types.TyCon 17387464673997143412#Word64 16681536026493340311#Word64 T8274.$trModule T8274.$tcN1 0# GHC.Internal.Types.krep$* -T8274.$tc'Negatives3 :: Addr# -T8274.$tc'Negatives3 = "'Negatives"# -T8274.$tc'Negatives = GHC.Internal.Types.TyCon 14330047746189143983#Word64 12207513731214201811#Word64 T8274.$trModule T8274.$tc'Negatives2 0# T8274.$tc'Negatives1 +$tcP1 :: Addr# +$tcP1 = "P"# +T8274.$tcP = GHC.Internal.Types.TyCon 7483823267324216774#Word64 12197132127820124256#Word64 T8274.$trModule $tcP2 0# GHC.Internal.Types.krep$* +$tc'Positives1 :: Addr# +$tc'Positives1 = "'Positives"# +T8274.$tc'Positives = GHC.Internal.Types.TyCon 14886798270706315033#Word64 15735393004803600911#Word64 T8274.$trModule $tc'Positives2 0# $krep10 +$tcN1 :: Addr# +$tcN1 = "N"# +T8274.$tcN = GHC.Internal.Types.TyCon 17387464673997143412#Word64 16681536026493340311#Word64 T8274.$trModule $tcN2 0# GHC.Internal.Types.krep$* +$tc'Negatives1 :: Addr# +$tc'Negatives1 = "'Negatives"# +T8274.$tc'Negatives = GHC.Internal.Types.TyCon 14330047746189143983#Word64 12207513731214201811#Word64 T8274.$trModule $tc'Negatives2 0# $krep14 ===================================== testsuite/tests/simplCore/should_compile/T9400.stderr ===================================== @@ -32,7 +32,7 @@ $trModule4 :: TrName $trModule4 = GHC.Internal.Types.TrNameS $trModule3 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -T9400.$trModule :: Module +T9400.$trModule [InlPrag=[~]] :: Module [GblId, Unf=OtherCon []] T9400.$trModule = GHC.Internal.Types.Module $trModule2 $trModule4 ===================================== testsuite/tests/simplCore/should_compile/noinline01.stderr ===================================== @@ -9,25 +9,24 @@ Noinline01.g :: GHC.Internal.Types.Bool [GblId] = \u [] Noinline01.f GHC.Internal.Types.False; -Noinline01.$trModule4 :: GHC.Internal.Prim.Addr# +$trModule1 :: GHC.Internal.Prim.Addr# [GblId, Unf=OtherCon []] = "main"#; -Noinline01.$trModule3 :: GHC.Internal.Types.TrName +$trModule2 :: GHC.Internal.Types.TrName [GblId, Unf=OtherCon []] = - GHC.Internal.Types.TrNameS! [Noinline01.$trModule4]; + GHC.Internal.Types.TrNameS! [$trModule1]; -Noinline01.$trModule2 :: GHC.Internal.Prim.Addr# +$trModule3 :: GHC.Internal.Prim.Addr# [GblId, Unf=OtherCon []] = "Noinline01"#; -Noinline01.$trModule1 :: GHC.Internal.Types.TrName +$trModule4 :: GHC.Internal.Types.TrName [GblId, Unf=OtherCon []] = - GHC.Internal.Types.TrNameS! [Noinline01.$trModule2]; + GHC.Internal.Types.TrNameS! [$trModule3]; -Noinline01.$trModule :: GHC.Internal.Types.Module +Noinline01.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module [GblId, Unf=OtherCon []] = - GHC.Internal.Types.Module! [Noinline01.$trModule3 - Noinline01.$trModule1]; + GHC.Internal.Types.Module! [$trModule2 $trModule4]; ===================================== testsuite/tests/simplCore/should_compile/par01.stderr ===================================== @@ -17,30 +17,29 @@ Par01.depth end Rec } -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -Par01.$trModule4 :: GHC.Internal.Prim.Addr# +$trModule1 :: GHC.Internal.Prim.Addr# [GblId, Unf=OtherCon []] -Par01.$trModule4 = "main"# +$trModule1 = "main"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -Par01.$trModule3 :: GHC.Internal.Types.TrName +$trModule2 :: GHC.Internal.Types.TrName [GblId, Unf=OtherCon []] -Par01.$trModule3 = GHC.Internal.Types.TrNameS Par01.$trModule4 +$trModule2 = GHC.Internal.Types.TrNameS $trModule1 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} -Par01.$trModule2 :: GHC.Internal.Prim.Addr# +$trModule3 :: GHC.Internal.Prim.Addr# [GblId, Unf=OtherCon []] -Par01.$trModule2 = "Par01"# +$trModule3 = "Par01"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} -Par01.$trModule1 :: GHC.Internal.Types.TrName +$trModule4 :: GHC.Internal.Types.TrName [GblId, Unf=OtherCon []] -Par01.$trModule1 = GHC.Internal.Types.TrNameS Par01.$trModule2 +$trModule4 = GHC.Internal.Types.TrNameS $trModule3 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} -Par01.$trModule :: GHC.Internal.Types.Module +Par01.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module [GblId, Unf=OtherCon []] -Par01.$trModule - = GHC.Internal.Types.Module Par01.$trModule3 Par01.$trModule1 +Par01.$trModule = GHC.Internal.Types.Module $trModule2 $trModule4 ===================================== testsuite/tests/th/TH_Roles2.stderr ===================================== @@ -2,18 +2,18 @@ TYPE CONSTRUCTORS data type T{2} :: forall k. k -> * roles nominal representational Dependent modules: [] -Dependent packages: [(normal, base-4.21.0.0), - (normal, template-haskell-2.23.0.0)] +Dependent packages: [(normal, base-4.22.0.0), + (normal, template-haskell-2.24.0.0)] ==================== Typechecker ==================== -TH_Roles2.$tcT +TH_Roles2.$tcT [InlPrag=[~]] = GHC.Internal.Types.TyCon 11651627537942629178#Word64 11503899791410937231#Word64 TH_Roles2.$trModule (GHC.Internal.Types.TrNameS "T"#) 1# $krep $krep [InlPrag=[~]] = GHC.Internal.Types.KindRepVar 0 $krep [InlPrag=[~]] = GHC.Internal.Types.KindRepFun $krep GHC.Internal.Types.krep$* -TH_Roles2.$trModule +TH_Roles2.$trModule [InlPrag=[~]] = GHC.Internal.Types.Module (GHC.Internal.Types.TrNameS "main"#) (GHC.Internal.Types.TrNameS "TH_Roles2"#) ===================================== testsuite/tests/typecheck/should_compile/T13032.stderr ===================================== @@ -13,7 +13,7 @@ f = \ (@a) (@b) _ [Occ=Dead] _ [Occ=Dead] _ [Occ=Dead] -> GHC.Internal.Types.True -- RHS size: {terms: 5, types: 0, coercions: 0, joins: 0/0} -T13032.$trModule :: GHC.Internal.Types.Module +T13032.$trModule [InlPrag=[~]] :: GHC.Internal.Types.Module [LclIdX, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, ===================================== testsuite/tests/typecheck/should_compile/T18406b.stderr ===================================== @@ -4,14 +4,14 @@ TYPE SIGNATURES TYPE CONSTRUCTORS class C{2} :: * -> * -> Constraint Dependent modules: [] -Dependent packages: [(normal, base-4.21.0.0)] +Dependent packages: [(normal, base-4.22.0.0)] ==================== Typechecker ==================== -Bug.$tcC +Bug.$tcC [InlPrag=[~]] = GHC.Internal.Types.TyCon 12754692886077552850#Word64 18375870125396612007#Word64 Bug.$trModule (GHC.Internal.Types.TrNameS "C"#) 0# $krep -Bug.$tc'C:C +Bug.$tc'C:C [InlPrag=[~]] = GHC.Internal.Types.TyCon 302756782745842909#Word64 14248103394115774781#Word64 Bug.$trModule (GHC.Internal.Types.TrNameS "'C:C"#) 2# $krep @@ -31,7 +31,7 @@ $krep [InlPrag=[~]] $krep [InlPrag=[~]] = GHC.Internal.Types.KindRepFun GHC.Internal.Types.krep$* GHC.Internal.Types.krep$Constraint -Bug.$trModule +Bug.$trModule [InlPrag=[~]] = GHC.Internal.Types.Module (GHC.Internal.Types.TrNameS "main"#) (GHC.Internal.Types.TrNameS "Bug"#) ===================================== testsuite/tests/typecheck/should_compile/T18529.stderr ===================================== @@ -4,14 +4,14 @@ TYPE SIGNATURES TYPE CONSTRUCTORS class C{2} :: * -> * -> Constraint Dependent modules: [] -Dependent packages: [(normal, base-4.21.0.0)] +Dependent packages: [(normal, base-4.22.0.0)] ==================== Typechecker ==================== -Bug.$tcC +Bug.$tcC [InlPrag=[~]] = GHC.Internal.Types.TyCon 12754692886077552850#Word64 18375870125396612007#Word64 Bug.$trModule (GHC.Internal.Types.TrNameS "C"#) 0# $krep -Bug.$tc'C:C +Bug.$tc'C:C [InlPrag=[~]] = GHC.Internal.Types.TyCon 302756782745842909#Word64 14248103394115774781#Word64 Bug.$trModule (GHC.Internal.Types.TrNameS "'C:C"#) 2# $krep @@ -35,7 +35,7 @@ $krep [InlPrag=[~]] $krep [InlPrag=[~]] = GHC.Internal.Types.KindRepTyConApp GHC.Internal.Tuple.$tcUnit [] @GHC.Internal.Types.KindRep -Bug.$trModule +Bug.$trModule [InlPrag=[~]] = GHC.Internal.Types.Module (GHC.Internal.Types.TrNameS "main"#) (GHC.Internal.Types.TrNameS "Bug"#) View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/0bfd29c3d233da282e96e89e5398cfd... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/0bfd29c3d233da282e96e89e5398cfd... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
Marge Bot (@marge-bot)