Changelog for quickcheck-classes-0.6.0.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to the Haskell Package Versioning Policy.
[0.6.0.0] - TBA
Change
- Support QuickCheck 2.7 and 2.8. This adds
Arbitrary
orphan instances to the test suite. - Fix CPP that caused build failures on GHC 7.10 and some old package versions.
- Fix compiling the test suite without semigroupoids and compiling with old versions of transformers.
- Add lower bound for semigroups to make sure the
stimes
method is available. - The laws
commutativeSemigroupLaws
andcommutativeMonoidLaws
no longer check any property other than commutativity. They must now be used in conjunction with, rather than in place of,semigroupLaws
andmonoidLaws
. This is a breaking change. - Fix the right distribution law for semirings.
- The function
lawsCheckMany
now terminates with exit code 1 if a test fails. - Extend
showReadLaws
with new properties forshowsPrec
,readsPrec
,showList
andreadList
. - Prettify JSON partial isomorphism test failure.
Added
- Add
genericLaws
andgeneric1Laws
- Add property tests for special classes of semigroups. This includes: commutative, idempotent, rectangular band, and exponential.
bifoldableLaws
,bifoldableFunctorLaws
- Add
showLaws
.
[0.5.0.0] - 2018-09-25
Change
- When compiling with GHC 8.6 and newer, use
QuantifiedConstraints
instead ofEq1
,Show1
,Arbitrary1
,Eq2
,Show
, andArbitrary2
.
[0.4.14.3] - 2018-09-21
Change
- Fix a CPP conditional import problem that caused build failures on GHC 7.10
- Set an explicit lower bound for containers
[0.4.14.2] - 2018-09-12
Change
- Support QuickCheck-2.12
- Fix compilation for containers<0.5.9
- Fix compilation with QuickCheck-2.9
[0.4.14.1] - 2018-07-24
Change
- Build correctly when dependency on semigroupoids is disabled.
[0.4.14] - 2018-07-23
Added
- commutativeSemigroupLaws
- the following typeclasses:
Data.Semigroupoid.Semigroupoid
(semigroupoids)Data.Functor.Plus.Plus
(semigroupoids)
Change
- semiringLaws were never exported, we now export them.
- make documentation for
MonadPlus
andAlternative
consistent. - bump semirings to 0.2.0.0
- deprecate
Test.QuickCheck.Classes.specialisedLawsCheckMany
in favour ofTest.QuickCheck.Classes.lawsCheckOne
[0.4.13] - 2018-07-18
Added
- Laws for
Enum
typeclass. - Laws for
Category
typeclass.
[0.4.12] - 2018-06-07
Added
- Remaining laws for
Storable
typeclass. - Laws for
Prim
typeclass requiringsetByteArray
andsetOffAddr
to match the behavior that would result from manually iterating over the array and writing the value element-by-element.
Change
- Correct the law from the
Bits
typeclass that relatesclearBit
andzeroBits
. - Limit the size of the lists that are used when testing that
mconcat
andsconcat
have behaviors that match their default implementations. For some data structures, concatenating the elements in a list of several dozen arbitrary values does not finish in a reasonable amount of time. So, the size of these has been limited to 6. - Make library build against
primitive-0.6.1.0
.
[0.4.11.1] - 2018-05-25
Change
- Fix compatibility with older GHCs when
semigroupoids
support is disabled.
[0.4.11] - 2018-05-24
Added
- Greatly improved documentation
specialisedLawsCheckMany
function, a shorter way for the user to uselawsCheckMany
on a single type.
Change
- Some internal names, making it more clear what it is that they do.
[0.4.10] - 2018-05-03
Added
- Property tests for
mconcat
,sconcat
, andstimes
. It isn't common to override the defaults for these, but when you do, it's nice to check that they agree with what they are supposed to do.
[0.4.9] - 2018-04-06
Change
- Be more careful with import of
Data.Primitive
. There is a branch ofprimitive
that addsPrimArray
. The implementation ofPrimArray
in this library should eventually be removed, but for now it will be sufficient to ensure that it does not create a conflicting import problem with the one in the branch.
[0.4.8] - 2018-03-29
Change
- Fix compilation regression for older versions of transformers.
[0.4.7] - 2018-03-29
Change
- Split up monolithic module into hidden internal modules.
- Fix compilation regression for older GHCs.
[0.4.6] - 2018-03-29
Added
- Property test the naturality law for
MonadZip
. There is another law that instances should satisfy (the Information Preservation law), but it's more difficult to write a test for. It has been omitted for now. - Property tests for all
MonadPlus
laws. - Several additional property tests for list-like containers: mapMaybe, replicate, filter.
[0.4.5] - 2018-03-26
Added
- Property tests for list-like containers that have
IsList
instances. These are useful for things that are nearlyFoldable
or nearlyTraversable
but are either constrained in their element type or totally monomorphic in it.
[0.4.4] - 2018-03-23
Added
- Cabal flags for controlling whether or not
aeson
andsemigroupoids
are used. These are mostly provided to accelerate buildsprimitive
's test suite.
[0.4.3] - 2018-03-23
Added
- Property tests for
foldl1
andfoldr1
. - Property tests for
Traversable
.
[0.4.2] - 2018-03-22
Changed
- Made compatible with
transformers-0.3
. Tests for higher-kinded typeclasses are unavailable when built with a sufficiently old version of bothtransformers
andbase
. This is becauseEq1
andShow1
are unavailable in this situation.
[0.4.1] - 2018-03-21
Changed
- Made compatible with
transformers-0.4
.
[0.4.0] - 2018-03-20
Added
- Property tests for
Bifunctor
andAlternative
.
Changed
- Made compatible with older GHCs all the way back to 7.8.4.
- Lower dependency footprint. Eliminate the dependency on
prim-array
and inline the relevant functions and types from it intoTest.QuickCheck.Classes
. None of these are exported.