Help wantedType: Feature
Description
In #14, you suggested that we should have property based testing of the simplifier.
- I think the same generator will be useful for a variety of other tests later on (e.g. an integration test from simplification to code gen), so it would be very useful to have a good shrinker with it.
- I saw this fun ICFP talk [paper] about compiler testing using code generation. I don't know if this is directly helpful but maybe their citations help in writing a good generator or shrinker. While many of the examples given rely on being able to perform IO arbitrarily, some like
(/) 0 (let e = not in pred 1)don't depend on this. It might be a good test to check that the output is identical for different optimization levels etc.