Make raiseIO# produce topRes wip/raiseIO-conservative
authorDavid Feuer <David.Feuer@gmail.com>
Wed, 8 Mar 2017 21:34:18 +0000 (16:34 -0500)
committerDavid Feuer <David.Feuer@gmail.com>
Wed, 8 Mar 2017 21:38:56 +0000 (16:38 -0500)
commitda4687f63ffe5a6162e3d7856aa53de048dd0f42
tree77c7a781af6f8096eccdc329086984640ea2eb20
parent6a94b8bba999ce111a8195ab398291dce5bcef2d
Make raiseIO# produce topRes

Summary:
Make `raiseIO#` produce `topRes` instead of `ExnRes`. `ExnRes`
leads to demand analysis being too aggressive, IMO, allowing
imprecise exceptions produced by `throw` to replace exceptions
thrown by `throwIO` that  would like to think of as precise.

This fixes that, but is certanly much more conservative than we
would ideally like. Let's see how bad it is.

Fixes Trac #13380

Reviewers: austin, bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3301
compiler/prelude/primops.txt.pp