In my project, I have several QuickCheck properties, most of which I collect using forAllProperties, defined in Test.QuickCheck.All. I am trying to run all my properties in parallel which is proving troublesome: at the end of a run, I get the output printed in the terminal and counterexamples and property names are often scattered so as to make it difficult to match properties with their counter examples.
I see that the purpose of library pqc is to run properties in parallel but it does not provide a replacement for forAllProperties nor does it provide a way of combining forAllProperties with the parallel test driver.
It feels like all I would need is for forAllProperties to pass the property name to the function it gets as an argument.
I have also looked into redirecting stdout on a thread by thread basis, first by using system-posix-redirect (which is not thread safe), then by studying Test.QuickCheck.State, especially the terminal field. The latter didn't pan out because I did not find a way of rewriting the terminal field.
Is there a way for me to, somehow, output the counter-examples together with the property names without copy / pasting the Test.QuickCheck.All module and making the changes I need?