How lose can we be with strictness

Christopher Allen cma at bitemyapp.com
Sat May 20 17:07:29 UTC 2017


Correct me if I'm wrong here, but it's preserving the effect of (==)
forcing its arguments. This makes the optimization less surprising, in
my opinion.

Is there a benefit to not doing this?

On Sat, May 20, 2017 at 11:56 AM, Joachim Breitner
<mail at joachim-breitner.de> wrote:
> Hi,
>
> I just observed that GHC optimizes
>
> fun (n::Int) = n == 0 + n
>
> to essentially
>
> fun (n::Int) = n `seq` True
>
>
> I am wondering under what circumstances we would be happy to transform
> this further to
>
> fun _ = True
>
>
> Clearly, we do not want to drop `seq`s in general. But is there some
> commonly accepted rule about which strictness we generally allow the
> compiler to get rid of, if it turns out that the compiler can do
> without? Or are all such transformations out of bounds for GHC?
>
> Greetings,
> Joachim
>
> --
> Joachim Breitner
>   mail at joachim-breitner.de
>   http://www.joachim-breitner.de/
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>



-- 
Chris Allen
Currently working on http://haskellbook.com


More information about the ghc-devs mailing list