-
Simon Peyton Jones authored
------------------------------- Better notion of what a 'value' is Slightly better eta reduction ------------------------------- 1. At various places we watch out for "values"; the predicate exprIsValue detects them. It was stupidly treating nullary constructors as non-values which is exceptionally stupid. This (performance) bug has been there for ages. There's an exactly similar bug in SimplUtils.interestingArg, which looks for an interesting argument to trigger an inlining. 2. The eta reduction in SimplUtils.tryEtaReduce would only eta reduce if that left us with a variable. That led to slightly tiresome thing like :DMonad (/\a b -> foo @ s @ a @ b) ... where this would be neater :DMonad (foo @ s) The fix is easy, and there's a little less code too.
c9c01697