Demand analyser: Implement LetUp rule (#12370)

Authored by nomeata on Jul 6 2016, 8:44 AM.

Description

Demand analyser: Implement LetUp rule (Trac #12370)

This makes the implementation match the description in the paper more
closely: There, a let binding that is not a function has first its body
analised, and then the binding’s RHS. This way, the demand on the bound
variable by the body can be fed into the RHS, yielding more precise
results.

Performance measurements do unfortunately not show significant
improvements or regessions.

Differential Revision: https://phabricator.haskell.org/D2395