
On Montag, 17. Dezember 2012, 07:07:21, Johan Tibell wrote:
This compiles badly in 7.4.2:
f :: Int -> Word f = fromIntegral
I need a workaround.
Mine produces (with optimisations, of course) Convert.f :: GHC.Types.Int -> GHC.Word.Word [GblId, Arity=1, Caf=NoCafRefs, Str=DmdType U(L)m, Unf=Unf{Src=InlineStable, TopLvl=True, Arity=1, Value=True, ConLike=True, Cheap=True, Expandable=True, Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=False) Tmpl= \ (ds_asy [Occ=Once!] :: GHC.Types.Int) -> case ds_asy of _ { GHC.Types.I# x#_asB [Occ=Once] -> GHC.Word.W# (GHC.Prim.int2Word# x#_asB) }}] Convert.f = \ (ds_asy :: GHC.Types.Int) -> case ds_asy of _ { GHC.Types.I# x#_asB -> GHC.Word.W# (GHC.Prim.int2Word# x#_asB) } which is what one would expect. And all of 6.12.3, 7.0.2, 7.0.4, 7.2.1, 7.2.2, 7.4.1, 7.4.2, 7.6.1 agree on that. I think there is some context needed to nail the problem.