[1 of 1] Compiling Main ( digits.hs, digits.o )
==================== Tidy Core ====================
Result size of Tidy Core = {terms: 69, types: 85, coercions: 12}
lvl_r1qU :: Integer
[GblId, Caf=NoCafRefs, Str=DmdType]
lvl_r1qU = __integer 10
Rec {
Main.$w$sdigits [InlPrag=[0], Occ=LoopBreaker]
:: Integer -> (# Int, [Int] #)
[GblId, Arity=1, Str=DmdType <S,U>]
Main.$w$sdigits =
\ (w_s1pI :: Integer) ->
case integer-gmp-1.0.0.0:GHC.Integer.Type.ltInteger#
w_s1pI lvl_r1qU
of wild_a17q { __DEFAULT ->
case GHC.Prim.tagToEnum# @ Bool wild_a17q of _ [Occ=Dead] {
False ->
let {
ds_s16Q [Dmd=<L,U(U,U)>] :: (Integer, Integer)
[LclId, Str=DmdType]
ds_s16Q =
case integer-gmp-1.0.0.0:GHC.Integer.Type.quotRemInteger
w_s1pI lvl_r1qU
of _ [Occ=Dead] { (# ipv_a17D, ipv1_a17E #) ->
(ipv_a17D, ipv1_a17E)
} } in
(# case ds_s16Q of _ [Occ=Dead] { (q_a11V, r_X12h) ->
case integer-gmp-1.0.0.0:GHC.Integer.Type.integerToInt r_X12h
of wild3_a17c { __DEFAULT ->
GHC.Types.I# wild3_a17c
}
},
case ds_s16Q of _ [Occ=Dead] { (q_X12h, r_X129) ->
case Main.$w$sdigits q_X12h
of _ [Occ=Dead] { (# ww1_s1pO, ww2_s1pP #) ->
GHC.Types.: @ Int ww1_s1pO ww2_s1pP
}
} #);
True ->
(# GHC.Num.$fNumInt_$cfromInteger w_s1pI, GHC.Types.[] @ Int #)
}
}
end Rec }
Main.main3 :: Integer
[GblId,
Caf=NoCafRefs,
Str=DmdType,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
Main.main3 = __integer 1
Main.main2 :: [Int]
[GblId,
Str=DmdType,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 40 30}]
Main.main2 =
case Main.$w$sdigits Main.main3
of _ [Occ=Dead] { (# ww1_s1pO, ww2_s1pP #) ->
GHC.Types.: @ Int ww1_s1pO ww2_s1pP
}
Main.main1
:: GHC.Prim.State# GHC.Prim.RealWorld
-> (# GHC.Prim.State# GHC.Prim.RealWorld, [Int] #)
[GblId,
Arity=1,
Str=DmdType <L,U>,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)}]
Main.main1 =
\ (s_a17U [OS=OneShot] :: GHC.Prim.State# GHC.Prim.RealWorld) ->
(# s_a17U, Main.main2 #)
main :: IO [Int]
[GblId,
Arity=1,
Str=DmdType <L,U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= Main.main1
`cast` (Sym (GHC.Types.NTCo:IO[0] <[Int]>_R)
:: (GHC.Prim.State# GHC.Prim.RealWorld
-> (# GHC.Prim.State# GHC.Prim.RealWorld, [Int] #))
~R# IO [Int])}]
main =
Main.main1
`cast` (Sym (GHC.Types.NTCo:IO[0] <[Int]>_R)
:: (GHC.Prim.State# GHC.Prim.RealWorld
-> (# GHC.Prim.State# GHC.Prim.RealWorld, [Int] #))
~R# IO [Int])
Main.main4
:: GHC.Prim.State# GHC.Prim.RealWorld
-> (# GHC.Prim.State# GHC.Prim.RealWorld, [Int] #)
[GblId,
Arity=1,
Str=DmdType,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}]
Main.main4 =
GHC.TopHandler.runMainIO1
@ [Int]
(Main.main1
`cast` (Sym (GHC.Types.NTCo:IO[0] <[Int]>_R)
:: (GHC.Prim.State# GHC.Prim.RealWorld
-> (# GHC.Prim.State# GHC.Prim.RealWorld, [Int] #))
~R# IO [Int]))
:Main.main :: IO [Int]
[GblId,
Arity=1,
Str=DmdType,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)
Tmpl= Main.main4
`cast` (Sym (GHC.Types.NTCo:IO[0] <[Int]>_R)
:: (GHC.Prim.State# GHC.Prim.RealWorld
-> (# GHC.Prim.State# GHC.Prim.RealWorld, [Int] #))
~R# IO [Int])}]
:Main.main =
Main.main4
`cast` (Sym (GHC.Types.NTCo:IO[0] <[Int]>_R)
:: (GHC.Prim.State# GHC.Prim.RealWorld
-> (# GHC.Prim.State# GHC.Prim.RealWorld, [Int] #))
~R# IO [Int])
Linking digits.exe ...
WzEgb2YgMV0gQ29tcGlsaW5nIE1haW4gICAgICAgICAgICAgKCBkaWdpdHMuaHMsIGRpZ2l0cy5vICkKCj09PT09PT09PT09PT09PT09PT09IFRpZHkgQ29yZSA9PT09PT09PT09PT09PT09PT09PQpSZXN1bHQgc2l6ZSBvZiBUaWR5IENvcmUgPSB7dGVybXM6IDY5LCB0eXBlczogODUsIGNvZXJjaW9uczogMTJ9CgpsdmxfcjFxVSA6OiBJbnRlZ2VyCltHYmxJZCwgQ2FmPU5vQ2FmUmVmcywgU3RyPURtZFR5cGVdCmx2bF9yMXFVID0gX19pbnRlZ2VyIDEwCgpSZWMgewpNYWluLiR3JHNkaWdpdHMgW0lubFByYWc9WzBdLCBPY2M9TG9vcEJyZWFrZXJdCiAgOjogSW50ZWdlciAtPiAoIyBJbnQsIFtJbnRdICMpCltHYmxJZCwgQXJpdHk9MSwgU3RyPURtZFR5cGUgPFMsVT5dCk1haW4uJHckc2RpZ2l0cyA9CiAgXCAod19zMXBJIDo6IEludGVnZXIpIC0+CiAgICBjYXNlIGludGVnZXItZ21wLTEuMC4wLjA6R0hDLkludGVnZXIuVHlwZS5sdEludGVnZXIjCiAgICAgICAgICAgd19zMXBJIGx2bF9yMXFVCiAgICBvZiB3aWxkX2ExN3EgeyBfX0RFRkFVTFQgLT4KICAgIGNhc2UgR0hDLlByaW0udGFnVG9FbnVtIyBAIEJvb2wgd2lsZF9hMTdxIG9mIF8gW09jYz1EZWFkXSB7CiAgICAgIEZhbHNlIC0+CiAgICAgICAgbGV0IHsKICAgICAgICAgIGRzX3MxNlEgW0RtZD08TCxVKFUsVSk+XSA6OiAoSW50ZWdlciwgSW50ZWdlcikKICAgICAgICAgIFtMY2xJZCwgU3RyPURtZFR5cGVdCiAgICAgICAgICBkc19zMTZRID0KICAgICAgICAgICAgY2FzZSBpbnRlZ2VyLWdtcC0xLjAuMC4wOkdIQy5JbnRlZ2VyLlR5cGUucXVvdFJlbUludGVnZXIKICAgICAgICAgICAgICAgICAgIHdfczFwSSBsdmxfcjFxVQogICAgICAgICAgICBvZiBfIFtPY2M9RGVhZF0geyAoIyBpcHZfYTE3RCwgaXB2MV9hMTdFICMpIC0+CiAgICAgICAgICAgIChpcHZfYTE3RCwgaXB2MV9hMTdFKQogICAgICAgICAgICB9IH0gaW4KICAgICAgICAoIyBjYXNlIGRzX3MxNlEgb2YgXyBbT2NjPURlYWRdIHsgKHFfYTExViwgcl9YMTJoKSAtPgogICAgICAgICAgIGNhc2UgaW50ZWdlci1nbXAtMS4wLjAuMDpHSEMuSW50ZWdlci5UeXBlLmludGVnZXJUb0ludCByX1gxMmgKICAgICAgICAgICBvZiB3aWxkM19hMTdjIHsgX19ERUZBVUxUIC0+CiAgICAgICAgICAgR0hDLlR5cGVzLkkjIHdpbGQzX2ExN2MKICAgICAgICAgICB9CiAgICAgICAgICAgfSwKICAgICAgICAgICBjYXNlIGRzX3MxNlEgb2YgXyBbT2NjPURlYWRdIHsgKHFfWDEyaCwgcl9YMTI5KSAtPgogICAgICAgICAgIGNhc2UgTWFpbi4kdyRzZGlnaXRzIHFfWDEyaAogICAgICAgICAgIG9mIF8gW09jYz1EZWFkXSB7ICgjIHd3MV9zMXBPLCB3dzJfczFwUCAjKSAtPgogICAgICAgICAgIEdIQy5UeXBlcy46IEAgSW50IHd3MV9zMXBPIHd3Ml9zMXBQCiAgICAgICAgICAgfQogICAgICAgICAgIH0gIyk7CiAgICAgIFRydWUgLT4KICAgICAgICAoIyBHSEMuTnVtLiRmTnVtSW50XyRjZnJvbUludGVnZXIgd19zMXBJLCBHSEMuVHlwZXMuW10gQCBJbnQgIykKICAgIH0KICAgIH0KZW5kIFJlYyB9CgpNYWluLm1haW4zIDo6IEludGVnZXIKW0dibElkLAogQ2FmPU5vQ2FmUmVmcywKIFN0cj1EbWRUeXBlLAogVW5mPVVuZntTcmM9PHZhbmlsbGE+LCBUb3BMdmw9VHJ1ZSwgVmFsdWU9VHJ1ZSwgQ29uTGlrZT1UcnVlLAogICAgICAgICBXb3JrRnJlZT1UcnVlLCBFeHBhbmRhYmxlPVRydWUsIEd1aWRhbmNlPUlGX0FSR1MgW10gMTAwIDB9XQpNYWluLm1haW4zID0gX19pbnRlZ2VyIDEKCk1haW4ubWFpbjIgOjogW0ludF0KW0dibElkLAogU3RyPURtZFR5cGUsCiBVbmY9VW5me1NyYz08dmFuaWxsYT4sIFRvcEx2bD1UcnVlLCBWYWx1ZT1GYWxzZSwgQ29uTGlrZT1GYWxzZSwKICAgICAgICAgV29ya0ZyZWU9RmFsc2UsIEV4cGFuZGFibGU9RmFsc2UsIEd1aWRhbmNlPUlGX0FSR1MgW10gNDAgMzB9XQpNYWluLm1haW4yID0KICBjYXNlIE1haW4uJHckc2RpZ2l0cyBNYWluLm1haW4zCiAgb2YgXyBbT2NjPURlYWRdIHsgKCMgd3cxX3MxcE8sIHd3Ml9zMXBQICMpIC0+CiAgR0hDLlR5cGVzLjogQCBJbnQgd3cxX3MxcE8gd3cyX3MxcFAKICB9CgpNYWluLm1haW4xCiAgOjogR0hDLlByaW0uU3RhdGUjIEdIQy5QcmltLlJlYWxXb3JsZAogICAgIC0+ICgjIEdIQy5QcmltLlN0YXRlIyBHSEMuUHJpbS5SZWFsV29ybGQsIFtJbnRdICMpCltHYmxJZCwKIEFyaXR5PTEsCiBTdHI9RG1kVHlwZSA8TCxVPiwKIFVuZj1VbmZ7U3JjPTx2YW5pbGxhPiwgVG9wTHZsPVRydWUsIFZhbHVlPVRydWUsIENvbkxpa2U9VHJ1ZSwKICAgICAgICAgV29ya0ZyZWU9VHJ1ZSwgRXhwYW5kYWJsZT1UcnVlLAogICAgICAgICBHdWlkYW5jZT1BTFdBWVNfSUYoYXJpdHk9MSx1bnNhdF9vaz1UcnVlLGJvcmluZ19vaz1UcnVlKX1dCk1haW4ubWFpbjEgPQogIFwgKHNfYTE3VSBbT1M9T25lU2hvdF0gOjogR0hDLlByaW0uU3RhdGUjIEdIQy5QcmltLlJlYWxXb3JsZCkgLT4KICAgICgjIHNfYTE3VSwgTWFpbi5tYWluMiAjKQoKbWFpbiA6OiBJTyBbSW50XQpbR2JsSWQsCiBBcml0eT0xLAogU3RyPURtZFR5cGUgPEwsVT4sCiBVbmY9VW5me1NyYz1JbmxpbmVTdGFibGUsIFRvcEx2bD1UcnVlLCBWYWx1ZT1UcnVlLCBDb25MaWtlPVRydWUsCiAgICAgICAgIFdvcmtGcmVlPVRydWUsIEV4cGFuZGFibGU9VHJ1ZSwKICAgICAgICAgR3VpZGFuY2U9QUxXQVlTX0lGKGFyaXR5PTAsdW5zYXRfb2s9VHJ1ZSxib3Jpbmdfb2s9VHJ1ZSkKICAgICAgICAgVG1wbD0gTWFpbi5tYWluMQogICAgICAgICAgICAgICBgY2FzdGAgKFN5bSAoR0hDLlR5cGVzLk5UQ286SU9bMF0gPFtJbnRdPl9SKQogICAgICAgICAgICAgICAgICAgICAgIDo6IChHSEMuUHJpbS5TdGF0ZSMgR0hDLlByaW0uUmVhbFdvcmxkCiAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICgjIEdIQy5QcmltLlN0YXRlIyBHSEMuUHJpbS5SZWFsV29ybGQsIFtJbnRdICMpKQogICAgICAgICAgICAgICAgICAgICAgICAgIH5SIyBJTyBbSW50XSl9XQptYWluID0KICBNYWluLm1haW4xCiAgYGNhc3RgIChTeW0gKEdIQy5UeXBlcy5OVENvOklPWzBdIDxbSW50XT5fUikKICAgICAgICAgIDo6IChHSEMuUHJpbS5TdGF0ZSMgR0hDLlByaW0uUmVhbFdvcmxkCiAgICAgICAgICAgICAgLT4gKCMgR0hDLlByaW0uU3RhdGUjIEdIQy5QcmltLlJlYWxXb3JsZCwgW0ludF0gIykpCiAgICAgICAgICAgICB+UiMgSU8gW0ludF0pCgpNYWluLm1haW40CiAgOjogR0hDLlByaW0uU3RhdGUjIEdIQy5QcmltLlJlYWxXb3JsZAogICAgIC0+ICgjIEdIQy5QcmltLlN0YXRlIyBHSEMuUHJpbS5SZWFsV29ybGQsIFtJbnRdICMpCltHYmxJZCwKIEFyaXR5PTEsCiBTdHI9RG1kVHlwZSwKIFVuZj1VbmZ7U3JjPTx2YW5pbGxhPiwgVG9wTHZsPVRydWUsIFZhbHVlPVRydWUsIENvbkxpa2U9VHJ1ZSwKICAgICAgICAgV29ya0ZyZWU9VHJ1ZSwgRXhwYW5kYWJsZT1UcnVlLCBHdWlkYW5jZT1JRl9BUkdTIFtdIDIwIDYwfV0KTWFpbi5tYWluNCA9CiAgR0hDLlRvcEhhbmRsZXIucnVuTWFpbklPMQogICAgQCBbSW50XQogICAgKE1haW4ubWFpbjEKICAgICBgY2FzdGAgKFN5bSAoR0hDLlR5cGVzLk5UQ286SU9bMF0gPFtJbnRdPl9SKQogICAgICAgICAgICAgOjogKEdIQy5QcmltLlN0YXRlIyBHSEMuUHJpbS5SZWFsV29ybGQKICAgICAgICAgICAgICAgICAtPiAoIyBHSEMuUHJpbS5TdGF0ZSMgR0hDLlByaW0uUmVhbFdvcmxkLCBbSW50XSAjKSkKICAgICAgICAgICAgICAgIH5SIyBJTyBbSW50XSkpCgo6TWFpbi5tYWluIDo6IElPIFtJbnRdCltHYmxJZCwKIEFyaXR5PTEsCiBTdHI9RG1kVHlwZSwKIFVuZj1VbmZ7U3JjPUlubGluZVN0YWJsZSwgVG9wTHZsPVRydWUsIFZhbHVlPVRydWUsIENvbkxpa2U9VHJ1ZSwKICAgICAgICAgV29ya0ZyZWU9VHJ1ZSwgRXhwYW5kYWJsZT1UcnVlLAogICAgICAgICBHdWlkYW5jZT1BTFdBWVNfSUYoYXJpdHk9MCx1bnNhdF9vaz1UcnVlLGJvcmluZ19vaz1UcnVlKQogICAgICAgICBUbXBsPSBNYWluLm1haW40CiAgICAgICAgICAgICAgIGBjYXN0YCAoU3ltIChHSEMuVHlwZXMuTlRDbzpJT1swXSA8W0ludF0+X1IpCiAgICAgICAgICAgICAgICAgICAgICAgOjogKEdIQy5QcmltLlN0YXRlIyBHSEMuUHJpbS5SZWFsV29ybGQKICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gKCMgR0hDLlByaW0uU3RhdGUjIEdIQy5QcmltLlJlYWxXb3JsZCwgW0ludF0gIykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgflIjIElPIFtJbnRdKX1dCjpNYWluLm1haW4gPQogIE1haW4ubWFpbjQKICBgY2FzdGAgKFN5bSAoR0hDLlR5cGVzLk5UQ286SU9bMF0gPFtJbnRdPl9SKQogICAgICAgICAgOjogKEdIQy5QcmltLlN0YXRlIyBHSEMuUHJpbS5SZWFsV29ybGQKICAgICAgICAgICAgICAtPiAoIyBHSEMuUHJpbS5TdGF0ZSMgR0hDLlByaW0uUmVhbFdvcmxkLCBbSW50XSAjKSkKICAgICAgICAgICAgIH5SIyBJTyBbSW50XSkKCgoKTGlua2luZyBkaWdpdHMuZXhlIC4uLgo=