==================== Specialise ==================== Result size of Specialise = {terms: 262, types: 169, coercions: 3, joins: 0/2} -- RHS size: {terms: 2, types: 1, coercions: 0, joins: 0/0} $cdummy_a14o :: Int -> () [LclId, Arity=1, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)}] $cdummy_a14o = \ _ [Occ=Dead] -> GHC.Tuple.() -- RHS size: {terms: 2, types: 1, coercions: 0, joins: 0/0} $cop_a146 :: Int -> Int [LclId, Arity=1, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)}] $cop_a146 = \ (x_aB5 :: Int) -> x_aB5 Rec { -- RHS size: {terms: 36, types: 18, coercions: 0, joins: 0/0} $swombat_s1fp :: Int -> Bool -> String [LclId, Arity=2] $swombat_s1fp = \ (a_aB9 :: Int) (b_aBa :: Bool) -> case GHC.Classes.gtInt a_aB9 (GHC.Types.I# 0#) of { False -> GHC.Base.augment @Char (\ (@b_a15V) (c_a15W [OS=OneShot] :: Char -> b_a15V -> b_a15V) (n_a15X [OS=OneShot] :: b_a15V) -> GHC.Base.foldr @Char @b_a15V c_a15W n_a15X (case a_aB9 of { GHC.Types.I# n_a162 -> GHC.Show.itos n_a162 (GHC.Types.[] @Char) })) (wombat @Bool GHC.Show.$fShowBool a_aB9 b_aBa); True -> wombat @Bool GHC.Show.$fShowBool (case a_aB9 of { GHC.Types.I# x_a17e -> GHC.Types.I# (GHC.Prim.-# x_a17e 1#) }) b_aBa } -- RHS size: {terms: 38, types: 21, coercions: 0, joins: 0/0} wombat [Occ=LoopBreaker] :: forall b. Show b => Int -> b -> String [LclIdX, Arity=3, Unf=Unf{Src=, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [0 40 0] 261 40}, RULES: "SPEC wombat @Bool" forall ($dShow_s1fo :: Show Bool). wombat @Bool $dShow_s1fo = $swombat_s1fp] wombat = \ (@b_a13z) ($dShow_a13A :: Show b_a13z) (a_aB9 :: Int) (b_aBa :: b_a13z) -> case GHC.Classes.gtInt a_aB9 (GHC.Types.I# 0#) of { False -> GHC.Base.augment @Char (\ (@b_a15V) (c_a15W [OS=OneShot] :: Char -> b_a15V -> b_a15V) (n_a15X [OS=OneShot] :: b_a15V) -> GHC.Base.foldr @Char @b_a15V c_a15W n_a15X (case a_aB9 of { GHC.Types.I# n_a162 -> GHC.Show.itos n_a162 (GHC.Types.[] @Char) })) (wombat @b_a13z $dShow_a13A a_aB9 b_aBa); True -> wombat @b_a13z $dShow_a13A (case a_aB9 of { GHC.Types.I# x_a17e -> GHC.Types.I# (GHC.Prim.-# x_a17e 1#) }) b_aBa } end Rec } -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0} T21848.$fCInt [InlPrag=CONLIKE] :: C Int [LclIdX[DFunId], Unf=DFun: \ -> T21848.C:C TYPE: Int wombat $cdummy_a14o] T21848.$fCInt = T21848.C:C @Int wombat $cdummy_a14o -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0} T21848.$fDInt [InlPrag=CONLIKE] :: D Int [LclIdX[DFunId], Unf=DFun: \ -> T21848.C:D TYPE: Int T21848.$fCInt $cop_a146] T21848.$fDInt = T21848.C:D @Int T21848.$fCInt $cop_a146 -- RHS size: {terms: 27, types: 21, coercions: 0, joins: 0/1} $sf_s1fn [InlPrag=[0]] :: Int -> Bool -> [Char] [LclId, Arity=2] $sf_s1fn = \ (eta_B0 :: Int) (eta_B1 :: Bool) -> let { $dC_s1fm :: C Int [LclId, Unf=Unf{Src=, TopLvl=False, Value=False, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}] $dC_s1fm = T21848.$fCInt } in GHC.Base.augment @Char (\ (@b_a15V) (c_a15W [OS=OneShot] :: Char -> b_a15V -> b_a15V) (n_a15X [OS=OneShot] :: b_a15V) -> GHC.Base.foldr @Char @b_a15V c_a15W n_a15X (wombat @Bool GHC.Show.$fShowBool eta_B0 eta_B1)) (GHC.Base.augment @Char (\ (@b_a15V) (c_a15W [OS=OneShot] :: Char -> b_a15V -> b_a15V) (n_a15X [OS=OneShot] :: b_a15V) -> GHC.CString.unpackFoldrCString# @b_a15V "!"# c_a15W n_a15X) (wombat @Bool GHC.Show.$fShowBool eta_B0 eta_B1)) -- RHS size: {terms: 34, types: 30, coercions: 0, joins: 0/1} f [InlPrag=INLINABLE[0]] :: forall a b. (D a, Show b) => a -> b -> String [LclId, Arity=4, Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [30 0 0 0] 210 0 Tmpl= \ (@a_a12O) (@b_a12P) ($dD_a12Q [Occ=OnceL1] :: D a_a12O) ($dShow_a12R :: Show b_a12P) (eta_B0 :: a_a12O) (eta_B1 :: b_a12P) -> let { $dC_a14v :: C a_a12O [LclId, Unf=Unf{Src=, TopLvl=False, Value=False, ConLike=False, WorkFree=False, Expandable=True, Guidance=IF_ARGS [] 20 0}] $dC_a14v = T21848.$p1D @a_a12O $dD_a12Q } in ++ @Char (meth @a_a12O $dC_a14v @b_a12P $dShow_a12R eta_B0 eta_B1) (GHC.CString.unpackAppendCString# "!"# (meth @a_a12O $dC_a14v @b_a12P $dShow_a12R eta_B0 eta_B1))}, RULES: "SPEC f @Int @Bool" [0] forall ($dD_s1fj :: D Int) ($dShow_s1fk :: Show Bool). f @Int @Bool $dD_s1fj $dShow_s1fk = $sf_s1fn] f = \ (@a_a12O) (@b_a12P) ($dD_a12Q :: D a_a12O) ($dShow_a12R :: Show b_a12P) (eta_B0 :: a_a12O) (eta_B1 :: b_a12P) -> let { $dC_s1fi :: C a_a12O [LclId, Unf=Unf{Src=, TopLvl=False, Value=False, ConLike=False, WorkFree=False, Expandable=True, Guidance=IF_ARGS [] 20 0}] $dC_s1fi = T21848.$p1D @a_a12O $dD_a12Q } in GHC.Base.augment @Char (\ (@b_a15V) (c_a15W [OS=OneShot] :: Char -> b_a15V -> b_a15V) (n_a15X [OS=OneShot] :: b_a15V) -> GHC.Base.foldr @Char @b_a15V c_a15W n_a15X (meth @a_a12O $dC_s1fi @b_a12P $dShow_a12R eta_B0 eta_B1)) (GHC.Base.augment @Char (\ (@b_a15V) (c_a15W [OS=OneShot] :: Char -> b_a15V -> b_a15V) (n_a15X [OS=OneShot] :: b_a15V) -> GHC.CString.unpackFoldrCString# @b_a15V "!"# c_a15W n_a15X) (meth @a_a12O $dC_s1fi @b_a12P $dShow_a12R eta_B0 eta_B1)) -- RHS size: {terms: 6, types: 2, coercions: 0, joins: 0/0} main_s1f2 :: String [LclId, Unf=Unf{Src=, TopLvl=False, Value=False, ConLike=False, WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 60 0}] main_s1f2 = f @Int @Bool T21848.$fDInt GHC.Show.$fShowBool (GHC.Types.I# 42#) GHC.Types.True -- RHS size: {terms: 4, types: 0, coercions: 0, joins: 0/0} main_s1f3 :: GHC.Prim.State# GHC.Prim.RealWorld -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #) [LclId, Arity=1, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 40 60}] main_s1f3 = GHC.IO.Handle.Text.hPutStr2 GHC.IO.Handle.FD.stdout main_s1f2 GHC.Types.True -- RHS size: {terms: 1, types: 0, coercions: 3, joins: 0/0} main :: IO () [LclIdX, Arity=1, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}] main = main_s1f3 `cast` (Sym (GHC.Types.N:IO[0] <()>_R) :: (GHC.Prim.State# GHC.Prim.RealWorld -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)) ~R# IO ()) -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} $trModule_s1f4 :: GHC.Prim.Addr# [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $trModule_s1f4 = "main"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} $trModule_s1f5 :: GHC.Types.TrName [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $trModule_s1f5 = GHC.Types.TrNameS $trModule_s1f4 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} $trModule_s1f6 :: GHC.Prim.Addr# [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}] $trModule_s1f6 = "T21848"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} $trModule_s1f7 :: GHC.Types.TrName [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $trModule_s1f7 = GHC.Types.TrNameS $trModule_s1f6 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} T21848.$trModule :: GHC.Types.Module [LclIdX, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] T21848.$trModule = GHC.Types.Module $trModule_s1f5 $trModule_s1f7 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0} $krep_a14Q [InlPrag=[~]] :: GHC.Types.KindRep [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $krep_a14Q = GHC.Types.KindRepTyConApp GHC.Types.$tcConstraint (GHC.Types.[] @GHC.Types.KindRep) -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} $krep_a14P [InlPrag=[~]] :: GHC.Types.KindRep [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $krep_a14P = GHC.Types.KindRepFun GHC.Types.krep$* $krep_a14Q -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} $krep_s1f8 :: Int [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $krep_s1f8 = GHC.Types.I# 0# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} $krep_a14T [InlPrag=[~]] :: GHC.Types.KindRep [LclId, Unf=Unf{Src=, TopLvl=False, Value=False, ConLike=True, WorkFree=False, Expandable=True, Guidance=IF_ARGS [] 20 0}] $krep_a14T = GHC.Types.$WKindRepVar $krep_s1f8 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} $krep_a14V [InlPrag=[~]] :: GHC.Types.KindRep [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $krep_a14V = GHC.Types.KindRepFun $krep_a14T $krep_a14T -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} $tcC_s1f9 :: GHC.Prim.Addr# [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $tcC_s1f9 = "C"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} $tcC_s1fa :: GHC.Types.TrName [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $tcC_s1fa = GHC.Types.TrNameS $tcC_s1f9 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} T21848.$tcC :: GHC.Types.TyCon [LclIdX, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] T21848.$tcC = GHC.Types.TyCon 14679919086118427567#Word64 12559744112860329810#Word64 T21848.$trModule $tcC_s1fa 0# $krep_a14P -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0} $krep_s1fb :: [GHC.Types.KindRep] [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $krep_s1fb = GHC.Types.: @GHC.Types.KindRep $krep_a14T (GHC.Types.[] @GHC.Types.KindRep) -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} $krep_a14S [InlPrag=[~]] :: GHC.Types.KindRep [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $krep_a14S = GHC.Types.KindRepTyConApp T21848.$tcC $krep_s1fb -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} $tcD_s1fc :: GHC.Prim.Addr# [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $tcD_s1fc = "D"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} $tcD_s1fd :: GHC.Types.TrName [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $tcD_s1fd = GHC.Types.TrNameS $tcD_s1fc -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} T21848.$tcD :: GHC.Types.TyCon [LclIdX, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] T21848.$tcD = GHC.Types.TyCon 2028775029841869083#Word64 18183109077030380353#Word64 T21848.$trModule $tcD_s1fd 0# $krep_a14P -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0} $krep_s1fe :: [GHC.Types.KindRep] [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $krep_s1fe = GHC.Types.: @GHC.Types.KindRep $krep_a14T (GHC.Types.[] @GHC.Types.KindRep) -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} $krep_a14W [InlPrag=[~]] :: GHC.Types.KindRep [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $krep_a14W = GHC.Types.KindRepTyConApp T21848.$tcD $krep_s1fe -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} $krep_a14U [InlPrag=[~]] :: GHC.Types.KindRep [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $krep_a14U = GHC.Types.KindRepFun $krep_a14V $krep_a14W -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} $krep_a14R [InlPrag=[~]] :: GHC.Types.KindRep [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $krep_a14R = GHC.Types.KindRepFun $krep_a14S $krep_a14U -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} $tc'C:D_s1ff :: GHC.Prim.Addr# [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] $tc'C:D_s1ff = "'C:D"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} $tc'C:D_s1fg :: GHC.Types.TrName [LclId, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] $tc'C:D_s1fg = GHC.Types.TrNameS $tc'C:D_s1ff -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} T21848.$tc'C:D :: GHC.Types.TyCon [LclIdX, Unf=Unf{Src=, TopLvl=False, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}] T21848.$tc'C:D = GHC.Types.TyCon 4845813539547459579#Word64 7908713917114703782#Word64 T21848.$trModule $tc'C:D_s1fg 1# $krep_a14R