HPC: do notation marks () as non-covered
With this Main.hs, the "()" in "pure ()" is marked by HPC as a non-covered expression:
foo :: IO () foo = do _ <- putStrLn "Unimportant string" pure () main :: IO () main = do foo putStrLn "Unimportant #2"
ghc -fhpc Main.hs
hpc markup Main.tix
This is an admittedly small issue, but it can be valuable for a project to aspire to 100% code coverage and false negatives prevent us from getting there.