-
Compiler output:
% cabal new-build --ghc-options='-ddump-simpl -ddump-simpl-stats' Build profile: -w ghc-8.4.4 -O1 In order, the following will be built (use -v for more details): - haskell-infinite-0.1.0.0 (lib) (file src/Data/Infinite.hs changed) Preprocessing library for haskell-infinite-0.1.0.0.. Building library for haskell-infinite-0.1.0.0.. [1 of 1] Compiling Data.Infinite ( src/Data/Infinite.hs, /home/sven/coding/haskell-infinite/dist-newstyle/build/x86_64-linux/ghc-8.4.4/haskell-infinite-0.1.0.0/build/Data/Infinite.o ) ==================== FloatOut stats: ==================== 31 Lets floated to top level; 6 Lets floated elsewhere; from 58 Lambda groups ==================== FloatOut stats: ==================== 4 Lets floated to top level; 0 Lets floated elsewhere; from 49 Lambda groups ==================== Grand total simplifier statistics ==================== Total ticks: 744 177 PreInlineUnconditionally 25 v_B1 25 v_B2 10 ds_d3RK 8 c_a1QH 7 $dNum_a3Gp 7 $dNum_s3Wi 4 f_a27l 4 b_a27m 4 g_a3Tt 3 c_X1RN 3 b_a26Y 3 b_a275 3 a_a3UI 2 c_a1pv 2 go_a1Hl 2 b_a27b 2 c_a27e 2 c_a3UD 2 n_a3UE 2 a_a3UM 2 n_a3UN 2 g_a3UQ 2 xs_a3US 2 k_a3VU 2 z_a3VV 2 g_a3VW 2 x_a41P 2 ds_d3RC 2 ds_d3RI 2 ds_d3Tm 2 $dNum_s418 2 $dNum_s419 1 c_X1RL 1 x_X3UQ 1 xs_a1pA 1 dt_a3QN 1 b_a3TE 1 x_a3TT 1 xs_a3Ux 1 ys_a3Uy 1 a_a3UL 1 ds_a3W6 1 ds1_a3W7 1 z0_a40W 1 xs_a40X 1 $dNum_s4hL 1 $dNum_s4hM 1 $dNum_s4hW 1 $dNum_s4hX 1 $dNum_s4io 1 $dNum_s4ip 1 p_s4iu 1 lvl_s4iA 1 lvl_s4iB 1 f_s4iD 1 lvl_s4iM 1 lvl_s4iU 1 lvl_s4iZ 1 lvl_s4j4 1 lvl_s4j7 1 lvl_s4j8 1 lvl_s4j9 1 lvl_s4ja 1 lvl_s4jb 1 lvl_s4jc 48 PostInlineUnconditionally 10 $dIntegral_a3Fl 4 k_a3V6 2 eta_B1 2 c_a1pB 2 c_a1pG 2 xss_a1pK 2 c_a1pL 2 f_a274 2 c_a278 2 $dEnum_a3G5 2 $dEnum_a3Gn 2 $dNum_a3Gp 2 z_a3V7 2 $dNum_s3Wi 1 eta_B2 1 f_a1pz 1 c_a271 1 $dIntegral_a3GE 1 $dIntegral_a3Hn 1 dt_a3QP 1 f_a3TR 1 y_a3We 1 f_s4hY 1 k_s4ib 78 UnfoldingDone 23 GHC.Base.$ 10 Data.Infinite.naturals 10 Data.Infinite.build 4 GHC.Base.build 4 GHC.Base.foldr 2 GHC.Base.augment 2 Data.Infinite.intercalate 2 GHC.Base.. 2 GHC.Num.$fNumInteger_$cfromInteger 2 c_s4hr 2 lvl_s4iF 1 g_a3TS 1 Data.Infinite.head 1 Data.Infinite.map 1 Data.Infinite.naturalsList 1 Data.Infinite.naturalsWithZero 1 GHC.Show.showParen 1 GHC.Show.showString 1 System.IO.putChar 1 GHC.Classes.geInt 1 GHC.Show.$dmshow 1 GHC.Show.$dmshowList 1 GHC.Types.$WKindRepVar 1 GHC.List.foldl 1 GHC.List.sum 1 p_s4iu 42 RuleFired 4 Class op foldr 4 foldr/build 3 Class op showsPrec 3 map/build 3 unpack 2 Class op $p1Integral 2 Class op $p1Real 2 Class op $p2Integral 2 Class op fromInteger 2 Class op show 2 Class op succ 2 fold/build 2 intersperse/build 2 toList/build 2 unpack-append 1 ++ 1 Class op >= 1 Class op >> 1 Class op sum 1 unpack-list 22 LetFloatFromLet 22 3 EtaExpansion 1 c_s4hr 1 f_s4hY 1 k_s4ib 368 BetaReduction 27 v_B1 26 v_B2 23 a_11 23 b_12 23 r_1i 12 b_a3Gk 10 a_a3E3 10 n_a3Fj 10 $dIntegral_a3Fl 10 ds_d3RK 8 c_a1QH 4 f_a27l 4 b_a27m 4 a_a27n 4 b_a3OB 4 a_a3Ts 4 g_a3Tt 4 a_a3V4 4 b_a3V5 4 k_a3V6 4 z_a3V7 3 c_X1RN 3 f_a274 3 b_a275 3 a_a276 3 b_a3Kg 3 a_a3UI 2 c_a1pv 2 c_a1pB 2 c_a1pG 2 ss_a1pJ 2 xss_a1pK 2 c_a1pL 2 s_a26X 2 b_a26Y 2 a_a26Z 2 c_a271 2 c_a278 2 b_a27b 2 a_a27c 2 c_a27e 2 b_a3DK 2 b_a3Eh 2 b_a3Et 2 a_a3EC 2 b_a3EI 2 t_a3FB 2 t_a3FJ 2 $dEnum_a3G5 2 b_a3Jn 2 b_a3Kw 2 b_a3Ly 2 b_a3TO 2 c_a3TP 2 a_a3TQ 2 f_a3TR 2 g_a3TS 2 b_a3UC 2 c_a3UD 2 n_a3UE 2 b_a3UJ 2 a_a3UM 2 n_a3UN 2 a_a3UP 2 g_a3UQ 2 xs_a3US 2 b_a3VS 2 a_a3VT 2 k_a3VU 2 z_a3VV 2 g_a3VW 2 x_a41P 2 ds_d3RC 2 ds_d3RI 2 ds_d3Tm 1 c_X1RL 1 x_X3UQ 1 f_a1pz 1 xs_a1pA 1 a_a3DQ 1 a_a3Ea 1 b_a3Eb 1 n_a3GC 1 $dIntegral_a3GE 1 n_a3Hl 1 $dIntegral_a3Hn 1 dt_a3QN 1 a_a3Tv 1 $dShow_a3Tw 1 a_a3Ty 1 $dShow_a3Tz 1 b_a3TE 1 p_a3TF 1 x_a3TT 1 a_a3Uw 1 xs_a3Ux 1 ys_a3Uy 1 a_a3UL 1 ds_a3W6 1 ds1_a3W7 1 a_a40Q 1 $dNum_a40R 1 a_a40T 1 b_a40U 1 k_a40V 1 z0_a40W 1 xs_a40X 2 KnownBranch 1 dt_X3QP 1 wild1_a3Wc 4 FillInCaseDefault 4 wild_a3Va 16 SimplifierDone 16 ==================== Tidy Core ==================== Result size of Tidy Core = {terms: 579, types: 711, coercions: 12, joins: 0/32} -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} lvl_r4fo :: G.Int [GblId, Caf=NoCafRefs, Str=m] lvl_r4fo = ghc-prim-0.5.2.0:GHC.Types.I# 6# -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} lvl1_r4mn :: G.Addr# [GblId, Caf=NoCafRefs] lvl1_r4mn = " :< "# Rec { -- RHS size: {terms: 42, types: 25, coercions: 0, joins: 0/2} Data.Infinite.$fShowInfinite_$cshowsPrec [Occ=LoopBreaker] :: forall a. Show a => G.Int -> Infinite a -> P.ShowS [GblId, Arity=3, Caf=NoCafRefs] Data.Infinite.$fShowInfinite_$cshowsPrec = \ (@ a_a3I9) ($dShow_a3Ia :: Show a_a3I9) (a1_a2hs :: G.Int) (ds_d3Th :: Infinite a_a3I9) -> case ds_d3Th of { :< b1_a2ht b2_a2hu -> case a1_a2hs of { G.I# x_a3Wa -> let { f_s4ix [Dmd=<L,C(U)>] :: String -> String [LclId] f_s4ix = P.showsPrec @ a_a3I9 $dShow_a3Ia lvl_r4fo b1_a2ht } in let { g_s4iv [Dmd=<L,C(U)>] :: String -> String [LclId] g_s4iv = Data.Infinite.$fShowInfinite_$cshowsPrec @ a_a3I9 $dShow_a3Ia lvl_r4fo b2_a2hu } in case G.>=# x_a3Wa 6# of { __DEFAULT -> \ (x1_X3UQ :: String) -> f_s4ix (ghc-prim-0.5.2.0:GHC.CString.unpackAppendCString# lvl1_r4mn (g_s4iv x1_X3UQ)); 1# -> \ (x1_a3TK :: String) -> ghc-prim-0.5.2.0:GHC.Types.: @ Char GHC.Show.$fShow(,)4 (f_s4ix (ghc-prim-0.5.2.0:GHC.CString.unpackAppendCString# lvl1_r4mn (g_s4iv (ghc-prim-0.5.2.0:GHC.Types.: @ Char GHC.Show.$fShow(,)2 x1_a3TK)))) } } } end Rec } -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} Data.Infinite.$fShowInfinite1 :: G.Int [GblId, Caf=NoCafRefs, Str=m, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}] Data.Infinite.$fShowInfinite1 = ghc-prim-0.5.2.0:GHC.Types.I# 0# -- RHS size: {terms: 8, types: 8, coercions: 0, joins: 0/0} Data.Infinite.$fShowInfinite_$cshow :: forall a. Show a => Infinite a -> String [GblId, Arity=2, Caf=NoCafRefs, Str=<L,U><L,U> {a3Ic-><C(C(C(C(S)))),1*C1(C1(C1(C1(U))))>}, Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=False) Tmpl= \ (@ a_a3I9) ($dShow_a3Ia [Occ=Once] :: Show a_a3I9) (x_a3Tx [Occ=Once] :: Infinite a_a3I9) -> Data.Infinite.$fShowInfinite_$cshowsPrec @ a_a3I9 $dShow_a3Ia Data.Infinite.$fShowInfinite1 x_a3Tx (ghc-prim-0.5.2.0:GHC.Types.[] @ Char)}] Data.Infinite.$fShowInfinite_$cshow = \ (@ a_a3I9) ($dShow_a3Ia :: Show a_a3I9) (x_a3Tx :: Infinite a_a3I9) -> Data.Infinite.$fShowInfinite_$cshowsPrec @ a_a3I9 $dShow_a3Ia Data.Infinite.$fShowInfinite1 x_a3Tx (ghc-prim-0.5.2.0:GHC.Types.[] @ Char) -- RHS size: {terms: 10, types: 11, coercions: 0, joins: 0/0} Data.Infinite.$fShowInfinite_$cshowList :: forall a. Show a => [Infinite a] -> P.ShowS [GblId, Arity=3, Caf=NoCafRefs, Str=<L,U><S,1*U><L,U> {a3Ic-><L,1*C1(C1(C(C1(U))))>}, Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=3,unsat_ok=True,boring_ok=False) Tmpl= \ (@ a_a3I9) ($dShow_a3Ia [Occ=Once] :: Show a_a3I9) (ls_a3TA [Occ=Once] :: [Infinite a_a3I9]) (s_a3TB [Occ=Once] :: String) -> GHC.Show.showList__ @ (Infinite a_a3I9) (Data.Infinite.$fShowInfinite_$cshowsPrec @ a_a3I9 $dShow_a3Ia Data.Infinite.$fShowInfinite1) ls_a3TA s_a3TB}] Data.Infinite.$fShowInfinite_$cshowList = \ (@ a_a3I9) ($dShow_a3Ia :: Show a_a3I9) (ls_a3TA :: [Infinite a_a3I9]) (s_a3TB :: String) -> GHC.Show.showList__ @ (Infinite a_a3I9) (Data.Infinite.$fShowInfinite_$cshowsPrec @ a_a3I9 $dShow_a3Ia Data.Infinite.$fShowInfinite1) ls_a3TA s_a3TB -- RHS size: {terms: 9, types: 9, coercions: 0, joins: 0/0} Data.Infinite.$fShowInfinite [InlPrag=NOUSERINLINE CONLIKE] :: forall a. Show a => Show (Infinite a) [GblId[DFunId], Arity=1, Caf=NoCafRefs, Str=<L,U>m, Unf=DFun: \ (@ a_ax7) (v_B1 :: Show a_ax7) -> GHC.Show.C:Show TYPE: Infinite a_ax7 Data.Infinite.$fShowInfinite_$cshowsPrec @ a_ax7 v_B1 Data.Infinite.$fShowInfinite_$cshow @ a_ax7 v_B1 Data.Infinite.$fShowInfinite_$cshowList @ a_ax7 v_B1] Data.Infinite.$fShowInfinite = \ (@ a_a3I9) ($dShow_a3Ia :: Show a_a3I9) -> GHC.Show.C:Show @ (Infinite a_a3I9) (Data.Infinite.$fShowInfinite_$cshowsPrec @ a_a3I9 $dShow_a3Ia) (Data.Infinite.$fShowInfinite_$cshow @ a_a3I9 $dShow_a3Ia) (Data.Infinite.$fShowInfinite_$cshowList @ a_a3I9 $dShow_a3Ia) -- RHS size: {terms: 4, types: 11, coercions: 0, joins: 0/0} build [InlPrag=INLINE[1] (sat-args=0)] :: forall a. (forall b. (a -> b -> b) -> b) -> Infinite a [GblId, Arity=1, Caf=NoCafRefs, Str=<C(S),1*C1(U)>, Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=0,unsat_ok=False,boring_ok=True) Tmpl= \ (@ a_a3E3) (ds_d3RK [Occ=Once!] :: forall b. (a_a3E3 -> b -> b) -> b) -> ds_d3RK @ (Infinite a_a3E3) (Data.Infinite.:< @ a_a3E3)}] build = \ (@ a_a3E3) (ds_d3RK :: forall b. (a_a3E3 -> b -> b) -> b) -> ds_d3RK @ (Infinite a_a3E3) (Data.Infinite.:< @ a_a3E3) -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} Data.Infinite.infinity1 :: Integer [GblId, Caf=NoCafRefs, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}] Data.Infinite.infinity1 = 0 -- RHS size: {terms: 22, types: 26, coercions: 0, joins: 0/2} naturals [InlPrag=INLINE (sat-args=0)] :: forall n. Integral n => Infinite n [GblId, Arity=1, Caf=NoCafRefs, Str=<L,U(1*U(1*U(A,A,A,A,A,A,1*C1(U)),A,A),1*U(C(U),A,A,A,A,A,A,A),A,A,A,A,A,A,A)>, Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=False,boring_ok=False) Tmpl= \ (@ n_a3Fj) ($dIntegral_a3Fl :: Integral n_a3Fj) -> build @ n_a3Fj (\ (@ b_a3Gk) -> let { $dEnum_a3Gn [Occ=OnceL] :: P.Enum n_a3Fj [LclId] $dEnum_a3Gn = GHC.Real.$p2Integral @ n_a3Fj $dIntegral_a3Fl } in \ (c_a1QH [Occ=Once, OS=OneShot] :: n_a3Fj -> b_a3Gk -> b_a3Gk) -> letrec { go_a3Fo [Occ=LoopBreaker] :: (n_a3Fj -> b_a3Gk -> b_a3Gk) -> n_a3Fj -> b_a3Gk [LclId, Arity=2, Unf=OtherCon []] go_a3Fo = \ (c1_a1Hm :: n_a3Fj -> b_a3Gk -> b_a3Gk) (n1_a1Hn :: n_a3Fj) -> c1_a1Hm n1_a1Hn (go_a3Fo c1_a1Hm (succ @ n_a3Fj $dEnum_a3Gn n1_a1Hn)); } in go_a3Fo c_a1QH (P.fromInteger @ n_a3Fj (GHC.Real.$p1Real @ n_a3Fj (GHC.Real.$p1Integral @ n_a3Fj $dIntegral_a3Fl)) 0))}] naturals = \ (@ n_a3Fj) ($dIntegral_a3Fl :: Integral n_a3Fj) -> let { $dEnum_s4in [Dmd=<L,U(C(U),A,A,A,A,A,A,A)>] :: P.Enum n_a3Fj [LclId] $dEnum_s4in = GHC.Real.$p2Integral @ n_a3Fj $dIntegral_a3Fl } in letrec { go_s4iK [Occ=LoopBreaker] :: (n_a3Fj -> Infinite n_a3Fj -> Infinite n_a3Fj) -> n_a3Fj -> Infinite n_a3Fj [LclId, Arity=2, Str=<C(C(S)),C(C1(U(U,U)))><L,U>, Unf=OtherCon []] go_s4iK = \ (c_a1Hm :: n_a3Fj -> Infinite n_a3Fj -> Infinite n_a3Fj) (n1_a1Hn :: n_a3Fj) -> c_a1Hm n1_a1Hn (go_s4iK c_a1Hm (succ @ n_a3Fj $dEnum_s4in n1_a1Hn)); } in go_s4iK (Data.Infinite.:< @ n_a3Fj) (P.fromInteger @ n_a3Fj (GHC.Real.$p1Real @ n_a3Fj (GHC.Real.$p1Integral @ n_a3Fj $dIntegral_a3Fl)) Data.Infinite.infinity1) Rec { -- RHS size: {terms: 12, types: 16, coercions: 0, joins: 0/0} foldr [InlPrag=INLINE[0] (sat-args=2), Occ=LoopBreaker] :: forall a b. (a -> b -> b) -> Infinite a -> b [GblId, Arity=2, Caf=NoCafRefs, Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=2,unsat_ok=False,boring_ok=False) Tmpl= \ (@ a_a3Du) (@ b_a3Dv) (f_a1pr :: a_a3Du -> b_a3Dv -> b_a3Dv) (ds_d3Rx [Occ=Once!] :: Infinite a_a3Du) -> case ds_d3Rx of { :< x_a1ps [Occ=Once] xs_a1pt [Occ=Once] -> f_a1pr x_a1ps (foldr @ a_a3Du @ b_a3Dv f_a1pr xs_a1pt) }}] foldr = \ (@ a_a3Du) (@ b_a3Dv) (f_a1pr :: a_a3Du -> b_a3Dv -> b_a3Dv) (ds_d3Rx :: Infinite a_a3Du) -> case ds_d3Rx of { :< x_a1ps xs_a1pt -> f_a1pr x_a1ps (foldr @ a_a3Du @ b_a3Dv f_a1pr xs_a1pt) } end Rec } -- RHS size: {terms: 5, types: 8, coercions: 0, joins: 0/0} toList [InlPrag=INLINE[1] (sat-args=1)] :: forall a. Infinite a -> [a] [GblId, Arity=1, Caf=NoCafRefs, Str=<L,U> {r1-><C(C(S)),1*C1(C1(U))>}, Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=False,boring_ok=False) Tmpl= \ (@ a_a3DB) (xs_a1pu [Occ=Once] :: Infinite a_a3DB) -> foldr @ a_a3DB @ [a_a3DB] (ghc-prim-0.5.2.0:GHC.Types.: @ a_a3DB) xs_a1pu}] toList = \ (@ a_a3DB) (xs_a1pu :: Infinite a_a3DB) -> foldr @ a_a3DB @ [a_a3DB] (ghc-prim-0.5.2.0:GHC.Types.: @ a_a3DB) xs_a1pu -- RHS size: {terms: 22, types: 26, coercions: 0, joins: 0/2} naturalsList [InlPrag=INLINE (sat-args=0)] :: forall n. Integral n => [n] [GblId, Arity=1, Caf=NoCafRefs, Str=<L,U(1*U(1*U(A,A,A,A,A,A,1*C1(U)),A,A),1*U(C(U),A,A,A,A,A,A,A),A,A,A,A,A,A,A)>, Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=False,boring_ok=False) Tmpl= \ (@ n_a3GC) ($dIntegral_a3GE :: Integral n_a3GC) -> G.build @ n_a3GC (\ (@ b_a3Ly) (c_a27e [Occ=Once, OS=OneShot] :: n_a3GC -> b_a3Ly -> b_a3Ly) _ [Occ=Dead, OS=OneShot] -> let { $dEnum_a3Gn [Occ=OnceL] :: P.Enum n_a3GC [LclId] $dEnum_a3Gn = GHC.Real.$p2Integral @ n_a3GC $dIntegral_a3GE } in letrec { go_a3Fo [Occ=LoopBreaker] :: (n_a3GC -> b_a3Ly -> b_a3Ly) -> n_a3GC -> b_a3Ly [LclId, Arity=2, Unf=OtherCon []] go_a3Fo = \ (c1_a1Hm :: n_a3GC -> b_a3Ly -> b_a3Ly) (n1_a1Hn :: n_a3GC) -> c1_a1Hm n1_a1Hn (go_a3Fo c1_a1Hm (succ @ n_a3GC $dEnum_a3Gn n1_a1Hn)); } in go_a3Fo c_a27e (P.fromInteger @ n_a3GC (GHC.Real.$p1Real @ n_a3GC (GHC.Real.$p1Integral @ n_a3GC $dIntegral_a3GE)) 0))}] naturalsList = \ (@ n_a3GC) ($dIntegral_a3GE :: Integral n_a3GC) -> let { $dEnum_s4ih [Dmd=<L,U(C(U),A,A,A,A,A,A,A)>] :: P.Enum n_a3GC [LclId] $dEnum_s4ih = GHC.Real.$p2Integral @ n_a3GC $dIntegral_a3GE } in letrec { go_s4ig [Occ=LoopBreaker] :: (n_a3GC -> [n_a3GC] -> [n_a3GC]) -> n_a3GC -> [n_a3GC] [LclId, Arity=2, Str=<C(C(S)),C(C1(U))><L,U>, Unf=OtherCon []] go_s4ig = \ (c_a1Hm :: n_a3GC -> [n_a3GC] -> [n_a3GC]) (n1_a1Hn :: n_a3GC) -> c_a1Hm n1_a1Hn (go_s4ig c_a1Hm (succ @ n_a3GC $dEnum_s4ih n1_a1Hn)); } in go_s4ig (ghc-prim-0.5.2.0:GHC.Types.: @ n_a3GC) (P.fromInteger @ n_a3GC (GHC.Real.$p1Real @ n_a3GC (GHC.Real.$p1Integral @ n_a3GC $dIntegral_a3GE)) Data.Infinite.infinity1) -- RHS size: {terms: 36, types: 35, coercions: 0, joins: 0/4} listInfinity :: forall n. Integral n => n [GblId, Arity=1, Caf=NoCafRefs, Str=<L,U(1*U(1*U(C(C1(U)),A,A,A,A,A,C(U)),A,A),1*U(C(U),A,A,A,A,A,A,A),A,A,A,A,A,A,A)>, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [60] 400 0}] listInfinity = \ (@ n_a3GJ) ($dIntegral_a3GL :: Integral n_a3GJ) -> let { $dNum_s4id [Dmd=<L,1*U(1*U(C(C1(U)),A,A,A,A,A,C(U)),A,A)>] :: P.Real n_a3GJ [LclId] $dNum_s4id = GHC.Real.$p1Integral @ n_a3GJ $dIntegral_a3GL } in let { $dNum1_s4ic [Dmd=<L,U(C(C1(U)),A,A,A,A,A,C(U))>] :: P.Num n_a3GJ [LclId] $dNum1_s4ic = GHC.Real.$p1Real @ n_a3GJ $dNum_s4id } in let { $dEnum_s4ia [Dmd=<L,U(C(U),A,A,A,A,A,A,A)>] :: P.Enum n_a3GJ [LclId] $dEnum_s4ia = GHC.Real.$p2Integral @ n_a3GJ $dIntegral_a3GL } in letrec { go_s4i9 [Occ=LoopBreaker] :: (n_a3GJ -> (n_a3GJ -> n_a3GJ) -> n_a3GJ -> n_a3GJ) -> n_a3GJ -> n_a3GJ -> n_a3GJ [LclId, Arity=2, Str=<C(C(S)),C(C1(U))><L,U>, Unf=OtherCon []] go_s4i9 = \ (c_a1Hm :: n_a3GJ -> (n_a3GJ -> n_a3GJ) -> n_a3GJ -> n_a3GJ) (n1_a1Hn :: n_a3GJ) -> c_a1Hm n1_a1Hn (go_s4i9 c_a1Hm (succ @ n_a3GJ $dEnum_s4ia n1_a1Hn)); } in go_s4i9 (\ (ds_a40Y :: n_a3GJ) (ds1_a40Z [OS=OneShot] :: n_a3GJ -> n_a3GJ) (v_a410 [OS=OneShot] :: n_a3GJ) -> ds1_a40Z (+ @ n_a3GJ $dNum1_s4ic v_a410 ds_a40Y)) (P.fromInteger @ n_a3GJ $dNum1_s4ic Data.Infinite.infinity1) (P.fromInteger @ n_a3GJ $dNum1_s4ic Data.Infinite.infinity1) -- RHS size: {terms: 3, types: 6, coercions: 0, joins: 0/0} head :: forall a. Infinite a -> a [GblId, Arity=1, Caf=NoCafRefs, Str={r1-><C(S),1*C1(U)>}, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}] head = \ (@ a_a3DQ) -> foldr @ a_a3DQ @ a_a3DQ (const @ a_a3DQ @ a_a3DQ) -- RHS size: {terms: 22, types: 22, coercions: 0, joins: 0/2} one :: forall n. Integral n => n [GblId, Arity=1, Caf=NoCafRefs, Str=<L,U(1*U(1*U(A,A,A,A,A,A,1*C1(U)),A,A),1*U(C(U),A,A,A,A,A,A,A),A,A,A,A,A,A,A)>, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [60] 250 0}] one = \ (@ n_a3GU) ($dIntegral_a3GW :: Integral n_a3GU) -> let { $dEnum_s4i3 [Dmd=<L,U(C(U),A,A,A,A,A,A,A)>] :: P.Enum n_a3GU [LclId] $dEnum_s4i3 = GHC.Real.$p2Integral @ n_a3GU $dIntegral_a3GW } in letrec { go_s4i2 [Occ=LoopBreaker] :: (n_a3GU -> n_a3GU -> n_a3GU) -> n_a3GU -> n_a3GU [LclId, Arity=2, Str=<C(C(S)),C(C1(U))><L,U>, Unf=OtherCon []] go_s4i2 = \ (c_a1Hm :: n_a3GU -> n_a3GU -> n_a3GU) (n1_a1Hn :: n_a3GU) -> c_a1Hm n1_a1Hn (go_s4i2 c_a1Hm (succ @ n_a3GU $dEnum_s4i3 n1_a1Hn)); } in go_s4i2 (const @ n_a3GU @ n_a3GU) (P.fromInteger @ n_a3GU (GHC.Real.$p1Real @ n_a3GU (GHC.Real.$p1Integral @ n_a3GU $dIntegral_a3GW)) Data.Infinite.infinity1) -- RHS size: {terms: 12, types: 15, coercions: 0, joins: 0/0} map [InlPrag=INLINE[1] (sat-args=2)] :: forall a b. (a -> b) -> Infinite a -> Infinite b [GblId, Arity=2, Caf=NoCafRefs, Str=<L,C(U)><L,U> {r1-><C(C(S)),1*C1(C1(U(U,U)))>}, Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=2,unsat_ok=False,boring_ok=False) Tmpl= \ (@ a_a3Ea) (@ b_a3Eb) (f_a1pz [Occ=OnceL!] :: a_a3Ea -> b_a3Eb) (xs_a1pA [Occ=Once] :: Infinite a_a3Ea) -> foldr @ a_a3Ea @ (Infinite b_a3Eb) (\ (x_a1pC [Occ=Once] :: a_a3Ea) (acc_a1pD [Occ=Once] :: Infinite b_a3Eb) -> Data.Infinite.:< @ b_a3Eb (f_a1pz x_a1pC) acc_a1pD) xs_a1pA}] map = \ (@ a_a3Ea) (@ b_a3Eb) (f_a1pz :: a_a3Ea -> b_a3Eb) (xs_a1pA :: Infinite a_a3Ea) -> foldr @ a_a3Ea @ (Infinite b_a3Eb) (\ (x_a1pC :: a_a3Ea) (acc_a1pD :: Infinite b_a3Eb) -> Data.Infinite.:< @ b_a3Eb (f_a1pz x_a1pC) acc_a1pD) xs_a1pA -- RHS size: {terms: 29, types: 32, coercions: 0, joins: 0/2} naturalsPlusOne :: forall n. Integral n => Infinite n [GblId, Arity=1, Caf=NoCafRefs, Str=<L,U(1*U(1*U(A,A,A,A,A,A,1*C1(U)),A,A),1*U(C(U),A,A,A,A,A,A,A),A,A,A,A,A,A,A)>, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [60] 310 0}] naturalsPlusOne = \ (@ n_a3H1) ($dIntegral_a3H3 :: Integral n_a3H1) -> let { $dEnum_s4hV [Dmd=<L,U(C(U),A,A,A,A,A,A,A)>] :: P.Enum n_a3H1 [LclId] $dEnum_s4hV = GHC.Real.$p2Integral @ n_a3H1 $dIntegral_a3H3 } in letrec { poly_go1_s4iS [Occ=LoopBreaker] :: forall b. (n_a3H1 -> b -> b) -> n_a3H1 -> b [LclId, Arity=2, Str=<C(C(S)),C(C1(U))><L,U>, Unf=OtherCon []] poly_go1_s4iS = \ (@ b_a3Kw) (c_a1Hm :: n_a3H1 -> b_a3Kw -> b_a3Kw) (n1_a1Hn :: n_a3H1) -> c_a1Hm n1_a1Hn (poly_go1_s4iS @ b_a3Kw c_a1Hm (succ @ n_a3H1 $dEnum_s4hV n1_a1Hn)); } in poly_go1_s4iS @ (Infinite n_a3H1) (\ (x_a279 :: n_a3H1) (xs_a27a [OS=OneShot] :: Infinite n_a3H1) -> Data.Infinite.:< @ n_a3H1 (succ @ n_a3H1 $dEnum_s4hV x_a279) xs_a27a) (P.fromInteger @ n_a3H1 (GHC.Real.$p1Real @ n_a3H1 (GHC.Real.$p1Integral @ n_a3H1 $dIntegral_a3H3)) Data.Infinite.infinity1) -- RHS size: {terms: 12, types: 13, coercions: 0, joins: 0/0} intersperse [InlPrag=INLINE[1] (sat-args=2)] :: forall a. a -> Infinite a -> Infinite a [GblId, Arity=2, Caf=NoCafRefs, Str=<L,U><L,U> {r1-><C(C(S)),1*C1(C1(U(U,U)))>}, Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=2,unsat_ok=False,boring_ok=False) Tmpl= \ (@ a_a3En) (s_a1pE [Occ=OnceL] :: a_a3En) (xs_a1pF [Occ=Once] :: Infinite a_a3En) -> foldr @ a_a3En @ (Infinite a_a3En) (\ (x_a1pH [Occ=Once] :: a_a3En) (acc_a1pI [Occ=Once] :: Infinite a_a3En) -> Data.Infinite.:< @ a_a3En x_a1pH (Data.Infinite.:< @ a_a3En s_a1pE acc_a1pI)) xs_a1pF}] intersperse = \ (@ a_a3En) (s_a1pE :: a_a3En) (xs_a1pF :: Infinite a_a3En) -> foldr @ a_a3En @ (Infinite a_a3En) (\ (x_a1pH :: a_a3En) (acc_a1pI :: Infinite a_a3En) -> Data.Infinite.:< @ a_a3En x_a1pH (Data.Infinite.:< @ a_a3En s_a1pE acc_a1pI)) xs_a1pF -- RHS size: {terms: 31, types: 33, coercions: 0, joins: 0/3} naturalsWithZero [InlPrag=INLINE (sat-args=0)] :: forall n. Integral n => Infinite n [GblId, Arity=1, Caf=NoCafRefs, Str=<L,U(1*U(1*U(A,A,A,A,A,A,1*C1(U)),A,A),1*U(C(U),A,A,A,A,A,A,A),A,A,A,A,A,A,A)>, Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=False,boring_ok=False) Tmpl= \ (@ n_a3Hl) ($dIntegral_a3Hn :: Integral n_a3Hl) -> let { s_a26X [Occ=OnceL] :: n_a3Hl [LclId] s_a26X = P.fromInteger @ n_a3Hl (GHC.Real.$p1Real @ n_a3Hl (GHC.Real.$p1Integral @ n_a3Hl $dIntegral_a3Hn)) 0 } in let { $dEnum_s41a [Occ=OnceL] :: P.Enum n_a3Hl [LclId] $dEnum_s41a = GHC.Real.$p2Integral @ n_a3Hl $dIntegral_a3Hn } in build @ n_a3Hl (\ (@ b_a3Jn) (c_a271 [OS=OneShot] :: n_a3Hl -> b_a3Jn -> b_a3Jn) -> letrec { go_a3Fo [Occ=LoopBreaker] :: (n_a3Hl -> b_a3Jn -> b_a3Jn) -> n_a3Hl -> b_a3Jn [LclId, Arity=2, Unf=OtherCon []] go_a3Fo = \ (c1_a1Hm :: n_a3Hl -> b_a3Jn -> b_a3Jn) (n1_a1Hn :: n_a3Hl) -> c1_a1Hm n1_a1Hn (go_a3Fo c1_a1Hm (succ @ n_a3Hl $dEnum_s41a n1_a1Hn)); } in go_a3Fo (\ (x_a272 [Occ=Once] :: n_a3Hl) (xs_a273 [Occ=Once] :: b_a3Jn) -> c_a271 x_a272 (c_a271 s_a26X xs_a273)) (P.fromInteger @ n_a3Hl (GHC.Real.$p1Real @ n_a3Hl (GHC.Real.$p1Integral @ n_a3Hl $dIntegral_a3Hn)) 0))}] naturalsWithZero = \ (@ n_a3Hl) ($dIntegral_a3Hn :: Integral n_a3Hl) -> let { s_s4hN :: n_a3Hl [LclId] s_s4hN = P.fromInteger @ n_a3Hl (GHC.Real.$p1Real @ n_a3Hl (GHC.Real.$p1Integral @ n_a3Hl $dIntegral_a3Hn)) Data.Infinite.infinity1 } in let { $dEnum_s4hK [Dmd=<L,U(C(U),A,A,A,A,A,A,A)>] :: P.Enum n_a3Hl [LclId] $dEnum_s4hK = GHC.Real.$p2Integral @ n_a3Hl $dIntegral_a3Hn } in letrec { poly_go1_s4iX [Occ=LoopBreaker] :: forall b. (n_a3Hl -> b -> b) -> n_a3Hl -> b [LclId, Arity=2, Str=<C(C(S)),C(C1(U))><L,U>, Unf=OtherCon []] poly_go1_s4iX = \ (@ b_a3Jn) (c_a1Hm :: n_a3Hl -> b_a3Jn -> b_a3Jn) (n1_a1Hn :: n_a3Hl) -> c_a1Hm n1_a1Hn (poly_go1_s4iX @ b_a3Jn c_a1Hm (succ @ n_a3Hl $dEnum_s4hK n1_a1Hn)); } in poly_go1_s4iX @ (Infinite n_a3Hl) (\ (x_a272 :: n_a3Hl) (xs_a273 [OS=OneShot] :: Infinite n_a3Hl) -> Data.Infinite.:< @ n_a3Hl x_a272 (Data.Infinite.:< @ n_a3Hl s_s4hN xs_a273)) s_s4hN -- RHS size: {terms: 34, types: 41, coercions: 0, joins: 0/3} intercalate [InlPrag=INLINE (sat-args=2)] :: forall a. [a] -> Infinite [a] -> Infinite a [GblId, Arity=2, Caf=NoCafRefs, Str=<L,U><L,U> {r1-><C(C(S)),1*C1(C1(U(U,U)))>}, Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=2,unsat_ok=False,boring_ok=False) Tmpl= \ (@ a_a3EC) (ss2_X1qO [Occ=OnceL] :: [a_a3EC]) (xss_a1pK [Occ=Once] :: Infinite [a_a3EC]) -> build @ a_a3EC (\ (@ b_a3EI) (c_a1pL [OS=OneShot] :: a_a3EC -> b_a3EI -> b_a3EI) -> foldr @ [a_a3EC] @ b_a3EI (\ (xs_a1pM [Occ=Once] :: [a_a3EC]) (acc_a1pN [Occ=Once] :: b_a3EI) -> GHC.Base.foldr @ a_a3EC @ b_a3EI c_a1pL (GHC.Base.foldr @ a_a3EC @ b_a3EI c_a1pL acc_a1pN ss2_X1qO) xs_a1pM) xss_a1pK)}] intercalate = \ (@ a_a3EC) (ss2_X1qO :: [a_a3EC]) (xss_a1pK :: Infinite [a_a3EC]) -> foldr @ [a_a3EC] @ (Infinite a_a3EC) (\ (xs_a1pM :: [a_a3EC]) (acc_a1pN :: Infinite a_a3EC) -> let { z_a3V7 [Dmd=<L,U(U,U)>] :: Infinite a_a3EC [LclId] z_a3V7 = letrec { go_a3V8 [Occ=LoopBreaker] :: [a_a3EC] -> Infinite a_a3EC [LclId, Arity=1, Str=<S,1*U>, Unf=OtherCon []] go_a3V8 = \ (ds_a3V9 :: [a_a3EC]) -> case ds_a3V9 of { [] -> acc_a1pN; : y_a3Ve ys_a3Vf -> Data.Infinite.:< @ a_a3EC y_a3Ve (go_a3V8 ys_a3Vf) }; } in go_a3V8 ss2_X1qO } in letrec { go_a3V8 [Occ=LoopBreaker] :: [a_a3EC] -> Infinite a_a3EC [LclId, Arity=1, Str=<S,1*U>, Unf=OtherCon []] go_a3V8 = \ (ds_a3V9 :: [a_a3EC]) -> case ds_a3V9 of { [] -> z_a3V7; : y_a3Ve ys_a3Vf -> Data.Infinite.:< @ a_a3EC y_a3Ve (go_a3V8 ys_a3Vf) }; } in go_a3V8 xs_a1pM) xss_a1pK -- RHS size: {terms: 25, types: 23, coercions: 0, joins: 0/2} infinity :: forall n. Integral n => n [GblId, Arity=1, Caf=NoCafRefs, Str=<S(S(S(C(C(S))LLLLLL)LL)LLLLLLLL),U(U(U(1*C(C1(U)),A,A,A,A,A,1*C1(U)),A,A),1*U(C(U),A,A,A,A,A,A,A),A,A,A,A,A,A,A)>, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [90] 310 0}] infinity = \ (@ n_a3Gs) ($dIntegral_a3Gu :: Integral n_a3Gs) -> let { $dEnum_s4hD [Dmd=<L,U(C(U),A,A,A,A,A,A,A)>] :: P.Enum n_a3Gs [LclId] $dEnum_s4hD = GHC.Real.$p2Integral @ n_a3Gs $dIntegral_a3Gu } in letrec { go_s4hC [Occ=LoopBreaker] :: (n_a3Gs -> n_a3Gs -> n_a3Gs) -> n_a3Gs -> n_a3Gs [LclId, Arity=2, Str=<C(C(S)),C(C1(U))><L,U>, Unf=OtherCon []] go_s4hC = \ (c_a1Hm :: n_a3Gs -> n_a3Gs -> n_a3Gs) (n1_a1Hn :: n_a3Gs) -> c_a1Hm n1_a1Hn (go_s4hC c_a1Hm (succ @ n_a3Gs $dEnum_s4hD n1_a1Hn)); } in go_s4hC (+ @ n_a3Gs (GHC.Real.$p1Real @ n_a3Gs (GHC.Real.$p1Integral @ n_a3Gs $dIntegral_a3Gu))) (P.fromInteger @ n_a3Gs (GHC.Real.$p1Real @ n_a3Gs (GHC.Real.$p1Integral @ n_a3Gs $dIntegral_a3Gu)) Data.Infinite.infinity1) -- RHS size: {terms: 25, types: 23, coercions: 0, joins: 0/2} infinityPlusOne :: forall n. Integral n => n [GblId, Arity=1, Caf=NoCafRefs, Str=<S(S(S(C(C(S))LLLLLL)LL)LLLLLLLL),U(U(U(1*C(C1(U)),A,A,A,A,A,1*C1(U)),A,A),1*U(C(U),A,A,A,A,A,A,A),A,A,A,A,A,A,A)>, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [90] 310 0}] infinityPlusOne = \ (@ n_a3Hb) ($dIntegral_a3Hd :: Integral n_a3Hb) -> let { $dEnum_s4hz [Dmd=<L,U(C(U),A,A,A,A,A,A,A)>] :: P.Enum n_a3Hb [LclId] $dEnum_s4hz = GHC.Real.$p2Integral @ n_a3Hb $dIntegral_a3Hd } in letrec { go_s4hy [Occ=LoopBreaker] :: (n_a3Hb -> n_a3Hb -> n_a3Hb) -> n_a3Hb -> n_a3Hb [LclId, Arity=2, Str=<C(C(S)),C(C1(U))><L,U>, Unf=OtherCon []] go_s4hy = \ (c_a1Hm :: n_a3Hb -> n_a3Hb -> n_a3Hb) (n1_a1Hn :: n_a3Hb) -> c_a1Hm n1_a1Hn (go_s4hy c_a1Hm (succ @ n_a3Hb $dEnum_s4hz n1_a1Hn)); } in go_s4hy (+ @ n_a3Hb (GHC.Real.$p1Real @ n_a3Hb (GHC.Real.$p1Integral @ n_a3Hb $dIntegral_a3Hd))) (P.fromInteger @ n_a3Hb (GHC.Real.$p1Real @ n_a3Hb (GHC.Real.$p1Integral @ n_a3Hb $dIntegral_a3Hd)) Data.Infinite.infinity1) -- RHS size: {terms: 36, types: 29, coercions: 0, joins: 0/5} infinityPlusZeros :: forall n. Integral n => n [GblId, Arity=1, Caf=NoCafRefs, Str=<S(S(S(C(C(S))LLLLLL)LL)LLLLLLLL),U(1*U(1*U(C(C1(U)),A,A,A,A,A,1*C1(U)),A,A),1*U(C(U),A,A,A,A,A,A,A),A,A,A,A,A,A,A)>, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [60] 380 0}] infinityPlusZeros = \ (@ n_a3Hu) ($dIntegral_a3Hw :: Integral n_a3Hu) -> let { c_s4ht [Dmd=<S(S(C(C(S))LLLLLL)LL),1*U(1*U(C(C1(U)),A,A,A,A,A,1*C1(U)),A,A)>] :: P.Real n_a3Hu [LclId] c_s4ht = GHC.Real.$p1Integral @ n_a3Hu $dIntegral_a3Hw } in let { c1_s4hs [Dmd=<S(C(C(S))LLLLLL),U(C(C1(U)),A,A,A,A,A,1*C1(U))>] :: P.Num n_a3Hu [LclId] c1_s4hs = GHC.Real.$p1Real @ n_a3Hu c_s4ht } in let { s_s4hv :: n_a3Hu [LclId] s_s4hv = P.fromInteger @ n_a3Hu c1_s4hs Data.Infinite.infinity1 } in let { $dEnum_s4hu [Dmd=<L,U(C(U),A,A,A,A,A,A,A)>] :: P.Enum n_a3Hu [LclId] $dEnum_s4hu = GHC.Real.$p2Integral @ n_a3Hu $dIntegral_a3Hw } in letrec { go_s4hq [Occ=LoopBreaker] :: (n_a3Hu -> n_a3Hu -> n_a3Hu) -> n_a3Hu -> n_a3Hu [LclId, Arity=2, Str=<C(C(S)),C(C1(U))><L,U>, Unf=OtherCon []] go_s4hq = \ (c2_a1Hm :: n_a3Hu -> n_a3Hu -> n_a3Hu) (n1_a1Hn :: n_a3Hu) -> c2_a1Hm n1_a1Hn (go_s4hq c2_a1Hm (succ @ n_a3Hu $dEnum_s4hu n1_a1Hn)); } in go_s4hq (\ (x_a272 :: n_a3Hu) (xs_a273 [OS=OneShot] :: n_a3Hu) -> + @ n_a3Hu c1_s4hs x_a272 (+ @ n_a3Hu c1_s4hs s_s4hv xs_a273)) s_s4hv -- RHS size: {terms: 6, types: 9, coercions: 0, joins: 0/0} tail :: forall a. Infinite a -> Infinite a [GblId, Arity=1, Caf=NoCafRefs, Str=<S(LS),1*U(A,1*U(U,U))>m, Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False) Tmpl= \ (@ a_a3Ds) (ds_d3Rq [Occ=Once!] :: Infinite a_a3Ds) -> case ds_d3Rq of { :< _ [Occ=Dead] xs_a1pw [Occ=Once] -> xs_a1pw }}] tail = \ (@ a_a3Ds) (ds_d3Rq :: Infinite a_a3Ds) -> case ds_d3Rq of { :< ds1_d3Rw xs_a1pw -> xs_a1pw } -- RHS size: {terms: 8, types: 12, coercions: 0, joins: 0/0} uncons :: forall a. Infinite a -> (a, Infinite a) [GblId, Arity=1, Caf=NoCafRefs, Str=<S,1*U(U,U)>m, Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False) Tmpl= \ (@ a_a3Dq) (ds_d3Rl [Occ=Once!] :: Infinite a_a3Dq) -> case ds_d3Rl of { :< x_a1px [Occ=Once] xs_a1py [Occ=Once] -> (x_a1px, xs_a1py) }}] uncons = \ (@ a_a3Dq) (ds_d3Rl :: Infinite a_a3Dq) -> case ds_d3Rl of { :< x_a1px xs_a1py -> (x_a1px, xs_a1py) } -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} Data.Infinite.$trModule4 :: G.Addr# [GblId, Caf=NoCafRefs, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 90 0}] Data.Infinite.$trModule4 = "haskell-infinite-0.1.0.0-inplace"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} Data.Infinite.$trModule3 :: ghc-prim-0.5.2.0: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}] Data.Infinite.$trModule3 = ghc-prim-0.5.2.0:GHC.Types.TrNameS Data.Infinite.$trModule4 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} Data.Infinite.$trModule2 :: G.Addr# [GblId, Caf=NoCafRefs, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 50 0}] Data.Infinite.$trModule2 = "Data.Infinite"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} Data.Infinite.$trModule1 :: ghc-prim-0.5.2.0: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}] Data.Infinite.$trModule1 = ghc-prim-0.5.2.0:GHC.Types.TrNameS Data.Infinite.$trModule2 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} Data.Infinite.$trModule :: ghc-prim-0.5.2.0:GHC.Types.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}] Data.Infinite.$trModule = ghc-prim-0.5.2.0:GHC.Types.Module Data.Infinite.$trModule3 Data.Infinite.$trModule1 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} $krep_r4mo :: ghc-prim-0.5.2.0:GHC.Types.KindRep [GblId, Caf=NoCafRefs, Str=m2] $krep_r4mo = ghc-prim-0.5.2.0:GHC.Types.KindRepVar 0# -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} Data.Infinite.$tcInfinite2 :: G.Addr# [GblId, Caf=NoCafRefs, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}] Data.Infinite.$tcInfinite2 = "Infinite"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} Data.Infinite.$tcInfinite1 :: ghc-prim-0.5.2.0: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}] Data.Infinite.$tcInfinite1 = ghc-prim-0.5.2.0:GHC.Types.TrNameS Data.Infinite.$tcInfinite2 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} Data.Infinite.$tcInfinite :: ghc-prim-0.5.2.0: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}] Data.Infinite.$tcInfinite = ghc-prim-0.5.2.0:GHC.Types.TyCon 3443476683406998639## 2998512225396208168## Data.Infinite.$trModule Data.Infinite.$tcInfinite1 0# ghc-prim-0.5.2.0:GHC.Types.krep$*Arr* -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0} $krep1_r4mp :: [ghc-prim-0.5.2.0:GHC.Types.KindRep] [GblId, Caf=NoCafRefs, Str=m2] $krep1_r4mp = ghc-prim-0.5.2.0:GHC.Types.: @ ghc-prim-0.5.2.0:GHC.Types.KindRep $krep_r4mo (ghc-prim-0.5.2.0:GHC.Types.[] @ ghc-prim-0.5.2.0:GHC.Types.KindRep) -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} $krep2_r4mq :: ghc-prim-0.5.2.0:GHC.Types.KindRep [GblId, Caf=NoCafRefs, Str=m1] $krep2_r4mq = ghc-prim-0.5.2.0:GHC.Types.KindRepTyConApp Data.Infinite.$tcInfinite $krep1_r4mp -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} $krep3_r4mr :: ghc-prim-0.5.2.0:GHC.Types.KindRep [GblId, Caf=NoCafRefs, Str=m4] $krep3_r4mr = ghc-prim-0.5.2.0:GHC.Types.KindRepFun $krep2_r4mq $krep2_r4mq -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0} Data.Infinite.$tc':<1 [InlPrag=NOUSERINLINE[~]] :: ghc-prim-0.5.2.0:GHC.Types.KindRep [GblId, Caf=NoCafRefs, Str=m4] Data.Infinite.$tc':<1 = ghc-prim-0.5.2.0:GHC.Types.KindRepFun $krep_r4mo $krep3_r4mr -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} Data.Infinite.$tc':<3 :: G.Addr# [GblId, Caf=NoCafRefs, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}] Data.Infinite.$tc':<3 = "':<"# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} Data.Infinite.$tc':<2 :: ghc-prim-0.5.2.0: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}] Data.Infinite.$tc':<2 = ghc-prim-0.5.2.0:GHC.Types.TrNameS Data.Infinite.$tc':<3 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0} Data.Infinite.$tc':< :: ghc-prim-0.5.2.0: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}] Data.Infinite.$tc':< = ghc-prim-0.5.2.0:GHC.Types.TyCon 1422679072665751084## 7549811010388946899## Data.Infinite.$trModule Data.Infinite.$tc':<2 1# Data.Infinite.$tc':<1 Rec { -- RHS size: {terms: 9, types: 7, coercions: 0, joins: 0/0} poly_go_r4ms :: forall b. (Integer -> b -> b) -> Integer -> b [GblId, Arity=2, Str=<C(C(S)),C(C1(U))><L,U>] poly_go_r4ms = \ (@ b_a3Kw) (c_a1Hm :: Integer -> b_a3Kw -> b_a3Kw) (n_a1Hn :: Integer) -> c_a1Hm n_a1Hn (poly_go_r4ms @ b_a3Kw c_a1Hm (GHC.Enum.$fEnumInteger_$csucc n_a1Hn)) end Rec } -- RHS size: {terms: 6, types: 6, coercions: 0, joins: 0/0} lvl2_r4mt :: Integer -> Infinite [Char] -> Infinite [Char] [GblId, Arity=2, Str=<L,U><L,U>m] lvl2_r4mt = \ (x_a279 :: Integer) (xs_a27a :: Infinite [Char]) -> Data.Infinite.:< @ [Char] (GHC.Show.$fShowInteger_$cshow x_a279) xs_a27a -- RHS size: {terms: 3, types: 3, coercions: 0, joins: 0/0} shownNaturals [InlPrag=INLINE (sat-args=0)] :: Infinite String [GblId, Unf=Unf{Src=InlineStable, TopLvl=True, Value=False, ConLike=False, WorkFree=False, Expandable=False, Guidance=ALWAYS_IF(arity=0,unsat_ok=False,boring_ok=False) Tmpl= build @ [Char] (\ (@ b_a3Kw) (c_a278 [Occ=OnceL!, OS=OneShot] :: [Char] -> b_a3Kw -> b_a3Kw) -> letrec { go_a3Fo [Occ=LoopBreaker] :: (Integer -> b_a3Kw -> b_a3Kw) -> Integer -> b_a3Kw [LclId, Arity=2, Unf=OtherCon []] go_a3Fo = \ (c1_a1Hm :: Integer -> b_a3Kw -> b_a3Kw) (n_a1Hn :: Integer) -> c1_a1Hm n_a1Hn (go_a3Fo c1_a1Hm (GHC.Enum.$fEnumInteger_$csucc n_a1Hn)); } in go_a3Fo (\ (x_a279 [Occ=Once] :: Integer) (xs_a27a [Occ=Once] :: b_a3Kw) -> c_a278 (GHC.Show.$fShowInteger_$cshow x_a279) xs_a27a) 0)}] shownNaturals = poly_go_r4ms @ (Infinite [Char]) lvl2_r4mt Data.Infinite.infinity1 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0} ss_r4mu :: G.Addr# [GblId, Caf=NoCafRefs] ss_r4mu = ", "# -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0} ss1_r4mv :: [Char] [GblId] ss1_r4mv = ghc-prim-0.5.2.0:GHC.CString.unpackCString# ss_r4mu -- RHS size: {terms: 29, types: 30, coercions: 0, joins: 0/3} lvl3_r4mw :: [Char] -> Infinite Char -> Infinite Char [GblId, Arity=2, Str=<S,1*U><L,U(U,U)>] lvl3_r4mw = \ (xs_a1pM :: [Char]) (acc_a1pN :: Infinite Char) -> let { z_a3V7 [Dmd=<L,U(U,U)>] :: Infinite Char [LclId] z_a3V7 = letrec { go_a3V8 [Occ=LoopBreaker] :: [Char] -> Infinite Char [LclId, Arity=1, Str=<S,1*U>, Unf=OtherCon []] go_a3V8 = \ (ds_a3V9 :: [Char]) -> case ds_a3V9 of { [] -> acc_a1pN; : y_a3Ve ys_a3Vf -> Data.Infinite.:< @ Char y_a3Ve (go_a3V8 ys_a3Vf) }; } in go_a3V8 ss1_r4mv } in letrec { go_a3V8 [Occ=LoopBreaker] :: [Char] -> Infinite Char [LclId, Arity=1, Str=<S,1*U>, Unf=OtherCon []] go_a3V8 = \ (ds_a3V9 :: [Char]) -> case ds_a3V9 of { [] -> z_a3V7; : y_a3Ve ys_a3Vf -> Data.Infinite.:< @ Char y_a3Ve (go_a3V8 ys_a3Vf) }; } in go_a3V8 xs_a1pM -- RHS size: {terms: 3, types: 4, coercions: 0, joins: 0/0} naturalsString [InlPrag=INLINE (sat-args=0)] :: Infinite Char [GblId, Str={r1-><C(C(S)),A>}, Unf=Unf{Src=InlineStable, TopLvl=True, Value=False, ConLike=False, WorkFree=False, Expandable=False, Guidance=ALWAYS_IF(arity=0,unsat_ok=False,boring_ok=False) Tmpl= let { ss2_X1r3 [Occ=OnceL] :: [Char] [LclId] ss2_X1r3 = G.build @ Char (\ (@ b_a3UJ) -> ghc-prim-0.5.2.0:GHC.CString.unpackFoldrCString# @ b_a3UJ ", "#) } in build @ Char (\ (@ b_a3EI) (c_a1pL [OS=OneShot] :: Char -> b_a3EI -> b_a3EI) -> foldr @ [Char] @ b_a3EI (\ (xs_a1pM [Occ=Once] :: [Char]) (acc_a1pN [Occ=Once] :: b_a3EI) -> GHC.Base.foldr @ Char @ b_a3EI c_a1pL (GHC.Base.foldr @ Char @ b_a3EI c_a1pL acc_a1pN ss2_X1r3) xs_a1pM) shownNaturals)}] naturalsString = foldr @ [Char] @ (Infinite Char) lvl3_r4mw shownNaturals -- RHS size: {terms: 6, types: 6, coercions: 3, joins: 0/0} Data.Infinite.putNaturals2 :: Char -> Infinite (IO ()) -> Infinite (IO ()) [GblId, Arity=2, Str=<L,U(U)><L,U>m, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=True)}] Data.Infinite.putNaturals2 = \ (x_a1pC :: Char) (acc_a1pD :: Infinite (IO ())) -> Data.Infinite.:< @ (IO ()) ((System.IO.putChar1 x_a1pC) `cast` (Sym (ghc-prim-0.5.2.0:GHC.Types.N:IO[0] <()>_R) :: (G.State# G.RealWorld -> (# G.State# G.RealWorld, () #) :: *) ~R# (IO () :: *))) acc_a1pD -- RHS size: {terms: 3, types: 4, coercions: 0, joins: 0/0} Data.Infinite.putNaturals1 :: Infinite (IO ()) [GblId, Str={r1-><C(C(S)),A>}, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False, WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 30 0}] Data.Infinite.putNaturals1 = foldr @ Char @ (Infinite (IO ())) Data.Infinite.putNaturals2 naturalsString -- RHS size: {terms: 3, types: 6, coercions: 9, joins: 0/0} putNaturals :: IO () [GblId, Str={r1-><C(C(S)),A>}, Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False, WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 30 0}] putNaturals = foldr @ (IO ()) @ (IO ()) ((GHC.Base.$fApplicativeIO2 @ () @ ()) `cast` (<IO ()>_R ->_R <IO ()>_R ->_R Sym (ghc-prim-0.5.2.0:GHC.Types.N:IO[0] <()>_R) :: (IO () -> IO () -> G.State# G.RealWorld -> (# G.State# G.RealWorld, () #) :: *) ~R# (IO () -> IO () -> IO () :: *))) Data.Infinite.putNaturals1 ------ Local rules for imported ids -------- "foldr/id" forall (@ a_a3PE). foldr @ a_a3PE @ (Infinite a_a3PE) (Data.Infinite.:< @ a_a3PE) = id @ (Infinite a_a3PE) "foldr/build" forall (@ b_a3OB) (@ a_a27n) (f_a27l :: a_a27n -> b_a3OB -> b_a3OB) (b1_a27m :: forall b1. (a_a27n -> b1 -> b1) -> b1). foldr @ a_a27n @ b_a3OB f_a27l (build @ a_a27n b1_a27m) = b1_a27m @ b_a3OB f_a27l "toList/build" forall (@ a_a27c) (b_a27b :: forall b. (a_a27c -> b -> b) -> b). toList @ a_a27c (build @ a_a27c b_a27b) = G.build @ a_a27c (\ (@ b1_a3Ly) (c_a27e [OS=OneShot] :: a_a27c -> b1_a3Ly -> b1_a3Ly) _ [Occ=Dead, OS=OneShot] -> b_a27b @ b1_a3Ly c_a27e) "map/build" forall (@ b_a3Kg) (@ a_a276) (f_a274 :: a_a276 -> b_a3Kg) (b1_a275 :: forall b1. (a_a276 -> b1 -> b1) -> b1). map @ a_a276 @ b_a3Kg f_a274 (build @ a_a276 b1_a275) = build @ b_a3Kg (\ (@ b2_a3Kw) (c_a278 :: b_a3Kg -> b2_a3Kw -> b2_a3Kw) -> b1_a275 @ b2_a3Kw (\ (x_a279 :: a_a276) (xs_a27a :: b2_a3Kw) -> c_a278 (f_a274 x_a279) xs_a27a)) "intersperse/build" forall (@ a_a26Z) (s_a26X :: a_a26Z) (b_a26Y :: forall b. (a_a26Z -> b -> b) -> b). intersperse @ a_a26Z s_a26X (build @ a_a26Z b_a26Y) = $ @ 'G.LiftedRep @ (forall b1. (a_a26Z -> b1 -> b1) -> b1) @ (Infinite a_a26Z) (build @ a_a26Z) (\ (@ b1_a3Jn) (c_a271 :: a_a26Z -> b1_a3Jn -> b1_a3Jn) -> $ @ 'G.LiftedRep @ (a_a26Z -> b1_a3Jn -> b1_a3Jn) @ b1_a3Jn (b_a26Y @ b1_a3Jn) (\ (x_a272 :: a_a26Z) (xs_a273 :: b1_a3Jn) -> $ @ 'G.LiftedRep @ b1_a3Jn @ b1_a3Jn (c_a271 x_a272) (c_a271 s_a26X xs_a273)))
Please register or sign in to comment