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.

_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to