Call arity
J Breitner - International Symposium on Trends in Functional …, 2014 - Springer
International Symposium on Trends in Functional Programming, 2014•Springer
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 foldl from efficiently taking part in list fusion. Call Arity is an analysis that eta-
expands functions based on their uses, instead of their definitions, and is very precise in the
presence of recursion. Its inclusion in GHC now allows to fuse foldl-based combinators.
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 foldl from efficiently taking part in list fusion. Call Arity is an analysis that eta-
expands functions based on their uses, instead of their definitions, and is very precise in the
presence of recursion. Its inclusion in GHC now allows to fuse foldl-based combinators.
Abstract
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 $$ foldl $$ from efficiently taking part in list fusion.
Call Arity is an analysis that eta-expands functions based on their uses, instead of their definitions, and is very precise in the presence of recursion. Its inclusion in GHC now allows to fuse $$ foldl $$-based combinators.
Springer