Fix exprIsHNF (Trac #11248)
authorSimon Peyton Jones <simonpj@microsoft.com>
Mon, 25 Jan 2016 11:16:18 +0000 (11:16 +0000)
committerSimon Peyton Jones <simonpj@microsoft.com>
Mon, 25 Jan 2016 11:32:32 +0000 (11:32 +0000)
commit3c060f36f6eb4d359f252168e2f97b573d017080
tree3f015279a2dcdcf8656353e24c54ee9c24cade67
parentf7e0e5f957f1b061eda057282504fca3de061220
Fix exprIsHNF (Trac #11248)

Blimey!  CoreUtils.exprIsHNFlike had not one but two bugs.

 * is_hnf_like treated coercion args like type args
   (result: exprIsHNF might wrongly say True)

 * app_is_value treated type args like value args
   (result: exprIsHNF might wrongly say False)

Bizarre.  This goes back to at least 2012. It's amazing that it
hasn't caused more trouble.

It was discovered by a Lint error when compiling Trac #11248 with -O.
compiler/coreSyn/CoreUtils.hs
testsuite/tests/polykinds/T11248.hs