
I opened up https://phabricator.haskell.org/D2987 to mark reallyUnsafePtrEquality# can_fail, but in the process I realized a couple things. 1. Part of https://phabricator.haskell.org/rGHC5a9a1738023a may actually not have been such a hot idea after all (although it certainly sounded good at the time). Are there actually any primops with lifted arguments where we *want* speculation? Perhaps the most important primop to consider is seq#, which is (mysteriously?) marked neither can_fail nor has_side_effects, but another to look at is unpackClosure#, which seems likely to give different results before and after forcing. Most other primops with lifted arguments are marked has_side_effects, and therefore won't be floated out anyway. 2. If dataToTag# is marked can_fail (an aspect of https:// phabricator.haskell.org/rGHC5a9a1738023a), is it still possible for it to end up being applied to an unevaluated argument? If not, perhaps the CorePrep specials can be removed altogether. David Feuer