Joachim Breitner's Homepage

Near the end of my internship with Simon Peyton Jones at MSR Cambridge I tackled the problem that foldl is not a good consumer in the sense of list fusion, as the resulting code compiles quite badly. I found an analysis that would allow GHC to safely do the required transformation to fix this in the common case; I dubbed this analysis Call Arity. The code is in GHC master (but not in 7.8), and I get to present at the Trends in Functional Programming conference in Soesterburg in 2½ weeks. If you are curious you can either look at the code in CallArity.hs or the submitted paper, which yet has to go through the formal post-conference peer review in order to be officially accepted.

If you are going to TFP as well and want to get your GPG key signed, just talk to me there!

Comments

Excellent! When we implemented a variation of foldr/build for the pH compiler in the mid 90's we ended up having to do a heuristic version, looking for letrec f ... in f (stuff not mentioning f) and increasing f's arity to match the stuff. But it was definitely fragile and clearly looked to benefit from a proper static analysis. Good to see this making its way into GHC!