This framework provides functionality for testing Haskell functions
against properties, similar to QuickCheck, but allowing
different test data generation strategies for different structures,
and even within the same structure using composition strategies.
Reporting, test case scheduling and data generation modules can be
assembled to customize the test program based on the situation.
Test data generation is based on combinatorial theory
and uses explicit enumeration of regular polynomial types,
combined with selection strategies to build data generators.
Generators can be composed or combined in parallel to create
composite strategies for data sampling.