No problems. If the expression is marked as always true, this does not mean that you have less than 100% coverage. As an example, I wrote a small fac-based executable, then ran hpc on it and an hpc report in the resulting tix file.
Here is the source:
fac n | n > 0 = n * (fac (n - 1)) | n == 0 = 1 | otherwise = 125 -- An arbitrary value. This of couse is demo code, and not actually a factorial. main = print (fac 12) >> print (fac (negate 100))
and here is the result:
100% expressions used (23/23) 66% boolean coverage (2/3) 66% guards (2/3), 1 always True 100% 'if' conditions (0/0) 100% qualifiers (0/0) 100% alternatives used (3/3) 100% local declarations used (0/0) 100% top-level declarations used (2/2)
The key value is 100% used expressions, as well as 100% alternative, used 100% top-level ads. The fact that you have 66 percent logical coverage doesn't matter. Therefore, if you run the hpc markup and look at the resulting hpc_index file, it reports top level, alternative, and expressions, but not Boolean coverage.
source share