Reputation: 62808
Unfortunately, many Template Haskell functions have absolutely no documentation at all. One such function is report
. It takes a Bool
and a String
, and produces a compilation error with the specified string as the error message. Does anybody have any clue what the hell the Bool
is for? As best as I can tell, either value does exactly the same thing...
Upvotes: 6
Views: 91
Reputation: 62808
Looking at the source code, report
calls qReport
, which is a method of some class called Quasi
. This method actually has some damned documentation - though only a tiny snippet. I quote:
Report an error (
True
) or warning (False
) ...but carry on; usefail
to stop
So it seems to make my TH splice crash with an appropriate error message, I just need to call fail
instead. Hopefully this information will be useful to anyone else trying to figure that out...
Upvotes: 2
Reputation: 26147
If the Bool
is True
, an error is reported; if it is False
, a "warning" is reported, meaning that the template code will continue to run to collect more "warnings."
Upvotes: 9