Higher order combinators in functional programming languages can lead to code that would be considerably more efficient if some functions’ definitions were eta-expanded, but the existing analyses are not always precise enough to allow that. In particular, this has prevented the implementation of foldl via foldr, which would allow foldl to take part in list fusion. Call Arity is an analysis that...