Apparently with QuickCheck you can throw exceptions in IO and of type IO smth, but what you can't do is throw an exception of type IOException, i.e. you can't throw an exception while you're throwing an exception, because in that case you won't get a seed. It is of course entirely accidental that we throw an exception while throwing an exception, but I didn't expect that to break QuickCheck.
Copying a Slack comment:
Apparently with
QuickCheck
you can throw exceptions inIO
and of typeIO smth
, but what you can't do is throw an exception of typeIOException
, i.e. you can't throw an exception while you're throwing an exception, because in that case you won't get a seed. It is of course entirely accidental that we throw an exception while throwing an exception, but I didn't expect that to breakQuickCheck
.