summaryrefslogtreecommitdiff
blob: 435de9480d90f26fa2ef7db32c91f5ca8935ae0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
	<maintainer type="project">
		<email>haskell@gentoo.org</email>
		<name>Gentoo Haskell</name>
	</maintainer>
	<use>
		<flag name="unary-laws">Include infrastructure for testing class laws of unary type constructors.</flag>
		<flag name="binary-laws">Include infrastructure for testing class laws of binary type constructors.
Disabling `unary-laws` while keeping `binary-laws` enabled is an unsupported
configuration.</flag>
	</use>
	<longdescription>
		This libary is a minimal variant of `quickcheck-classes` that
		only provides laws for typeclasses from `base`. The main purpose
		of splitting this out is so that `primitive` can depend on
		`quickcheck-classes-base` in its test suite, avoiding the circular
		dependency that arises if `quickcheck-classes` is used instead.
		
		This library provides QuickCheck properties to ensure
		that typeclass instances adhere to the set of laws that
		they are supposed to. There are other libraries that do
		similar things, such as `genvalidity-hspec` and `checkers`.
		This library differs from other solutions by not introducing
		any new typeclasses that the user needs to learn.
		
		/Note:/ on GHC &lt; 8.5, this library uses the higher-kinded typeclasses
		('Data.Functor.Classes.Show1', 'Data.Functor.Classes.Eq1', 'Data.Functor.Classes.Ord1', etc.),
		but on GHC &gt;= 8.5, it uses `-XQuantifiedConstraints` to express these
		constraints more cleanly.
	</longdescription>
</pkgmetadata>