X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fprelude%2Fprimops.txt.pp;fp=compiler%2Fprelude%2Fprimops.txt.pp;h=c5dad9bf76832505e1100d0ac16a719d64101b39;hp=cb7c79234def0c32f2d559ea8ba355258adaa075;hb=42fe164955f3c326604e284505b271c6035d0245;hpb=51367fba96fd863ce7d3e2571bd22366b47b900a diff --git a/compiler/prelude/primops.txt.pp b/compiler/prelude/primops.txt.pp index cb7c792..c5dad9b 100644 --- a/compiler/prelude/primops.txt.pp +++ b/compiler/prelude/primops.txt.pp @@ -1140,10 +1140,14 @@ primop RaiseOp "raise#" GenPrimOp -- raiseIO# needs to be a primop, because exceptions in the IO monad -- must be *precise* - we don't want the strictness analyser turning -- one kind of bottom into another, as it is allowed to do in pure code. +-- +-- But we *do* want to know that it returns bottom after +-- being applied to two arguments primop RaiseIOOp "raiseIO#" GenPrimOp a -> State# RealWorld -> (# State# RealWorld, b #) with + strictness = { \ _arity -> mkStrictSig (mkTopDmdType [lazyDmd,lazyDmd] BotRes) } out_of_line = True has_side_effects = True