Description
Data type modifiers for property based testing.
Description
Property based testing libraries such as QuickCheck tend to include type modifiers. Most of them are used to quantify over subsets of a type. For example a property on non-empty lists:
prop_tail_length (NonEmpty xs) = length (tail xs) == length xs - 1
This library is intended to supply these modifiers to be used by testing libraries, in an effort to make properties more portable between testing frameworks.
For every modifier it also provides an access function that converts to the underlying type, which enables point-free style properties as such:
prop_tail_length2 = (> 0) . length . nonEmpty