• 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)))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment