If the student submits a compiling main module, the presence of tail in the helper module has no impact.
But if the student submits a non-compiling main module, then in addition to the compiler error message about their own code, they also get this message about IOTestHelper:
IOTestHelper.hs:11:66: warning: [GHC-63394] [-Wx-partial (in -Wextended-warnings)]
In the use of ‘tail’
(imported from Prelude, but defined in GHC.List):
"This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
That's of course confusing.
Is there a way to systematically make sure only complaints about the student code surface?
Or to make sure that at configuration time the task type checks that the modules are compile-error-and-warning-free?
Specifically, in this task: https://autotool.fmi.uni-due.de/route/aufgabe/571, the
IOTestHelper
usestail
.If the student submits a compiling main module, the presence of
tail
in the helper module has no impact.But if the student submits a non-compiling main module, then in addition to the compiler error message about their own code, they also get this message about
IOTestHelper
:That's of course confusing.
Is there a way to systematically make sure only complaints about the student code surface?
Or to make sure that at configuration time the task type checks that the modules are compile-error-and-warning-free?