Simon Peyton Jones's book The Implementation of Functional Programming
Languages, chapter 13 (Supercombinators and Lamba-lifting), page 222,
describes a multi-argument beta-reduction strategy whereby several free
variables of a multi-argument abstraction may be instantiated
simultaneously.
Questions prompted by the Excessive Sharing section, page 405, of SPJ's
The Implementation of Functional Programming.
This section gives 2 variations of a power list function, semantically
equivalent, but with different space behaviours. Paraphrasing, given a
caller of length (powerListXXX