## The `qcheck-core` library

The `qcheck-core` library exposes two toplevel modules:

- `QCheck` is the initial property-based-testing module and
- `QCheck2` is a newer property-based-testing module supporting integrated shrinking

Of the two, `QCheck` is the most battle-tested module. `QCheck2` on the other hand offers integrated shrinking, thus removing the need for having to hand-write shrinkers.

`QCheck` tests can be ported to `QCheck2` by following the migration guide. Please file an issue if you encounter problems using either of the two modules.

## The `qcheck-core.runner` library

The entry point of the `qcheck-core.runner` library is the `QCheck_base_runner` module.

One can run a list of property-based tests by calling either

- `QCheck_base_runner.run_tests`, which accepts a number of optional arguments, or
- `QCheck_base_runner.run_tests_main`, which can be controlled via command-line arguments