<div dir="ltr"><div><div><div><div>If I look at the production for strict_mark in the parser<br><br><a href="https://github.com/ghc/ghc/blob/master/compiler/parser/Parser.y#L1355">https://github.com/ghc/ghc/blob/master/compiler/parser/Parser.y#L1355</a><br><br>strict_mark :: { Located ([AddAnn],HsBang) }<br>        : '!'                        { sL1 $1 ([],HsUserBang Nothing      True) }<br>        | '{-# UNPACK' '#-}'         { sLL $1 $> ([mo $1,mc $2],HsUserBang (Just True)  False) }<br>        | '{-# NOUNPACK' '#-}'       { sLL $1 $> ([mo $1,mc $2],HsUserBang (Just False) True) } -- ***Correct?<br>        | '{-# UNPACK' '#-}' '!'     { sLL $1 $> ([mo $1,mc $2],HsUserBang (Just True)  True) }<br>        | '{-# NOUNPACK' '#-}' '!'   { sLL $1 $> ([mo $1,mc $2],HsUserBang (Just False) True) }<br><br></div>I would expect the final True or False value to reflect the presence of the '!' mark.<br><br></div>But the second line has no '!' but returns True.<br><br></div>I suspect this is an error.<br><br></div>Alan<br></div>