I am using the Leksah IDE 0.15.0.1 and I get a warning when compiling the example package: "name ... found in source file but was not in scope".

What is the meaning of this Warning ?

I googled for this text but found noting enlightening.

enter image description here

1

There are 1 answers

0
bat_a_toe On

The problem probably lies within the lines

testMain = do
    allPass <- $quickCheckAll
    unless allPass exitFailure

According to the QuickCheck documentation, in order to utilize quickCheckAll, the IO action that performs $quickCheckAll must have return [] before its definition.

To use quickCheckAll, add a definition to your module along the lines of

return []
runTests = $quickCheckAll

and then execute runTests.

So applying it to your testMain definition, it would end up being

return []
testMain = do
    allPass <- $quickCheckAll
    unless allPass exitFailure

The documentation also provides an explanation for such need:

Note: the bizarre return [] in the example above is needed on GHC 7.8 and > later; without it, quickCheckAll will not be able to find any of the properties. For the curious, the return [] is a Template Haskell splice that makes GHC insert the empty list of declarations at that point in the program; GHC typechecks everything before the return [] before it starts on the rest of the module, which means that the later call to quickCheckAll can see everything that was defined before the return []. Yikes!