Test.Properties is flexible and readable way of codifing and executing assertions. The properties can be defined right within the class or the code for which the properties apply.
Instead of testing properties with automatically generate values in a separate test program,this package permits to test them on the fly while the real application run, with the data produced within. So somehow it unites the readability of QuickCheck and the flexibility of assert. It is simple and straighforward But is by no means perfect. no statistics and so on. Just trace messages are sent.
The primary purpose of this package was to define class properties and to check their instances. The properties can be defined within a class. so no additional exports are necessary. checking instaces can be done within the instance declarations. But it can be used anywhere assertions are used. It can be attached to arbitrary piece of code for which the property group holds. The defined properties can be used for casual debugging.
The package includes complete examples.