- Updated to latest
kind-generics
library - Removed orphan instances for
View
effect, which is no longer in polysemy HEAD
prepropLaw
now generates a newLaw
record, allowing for better control over the program prelude and postludesprepropLaw
now takes a labeler, for running QuickCheck coverage
- Added a new function,
prepropAllCommutative
which ensures every effect commutes with every other one.
prepropCommutative
now accepts arbitrary rows to draw actions from, rather than single effects.
- Removed the
x
type variable fromprepropEquivalent
, since it is safe to instantiate arbitrarily, and leads to aggressive type errors if forgotten.
- Changed the frequencies of
Sem
'sArbitrary
instance, to create more interesting programs. - Removed the program generator parameter of
prepropEquivalent
. It now just uses theArbitrary
instance forSem
. - Added some new examples to the test suite.
- Flattened the module structure of
Polysemy.Check.Arbitrary
. - Fixed a bug where
arbitraryActionFromRowOfType
would return bottom. - Added an
Arbitrary
instance forSem r a
. - Added tests to prove all generators have a uniform distribution for actions.
prepropLaw
now prints the actions it ran before and after your test.- Changed the orphan
Show
instances for standard Polysemy effects to more easily be used for testing coverage. - Added a
Show
instance forSomeEffOfType
. - (Internal) Removed the
GArbitraryKTerm
class
GArbitraryK
now supports actions that contain existential types.- (Internal) Aggressively rewrote the
GArbitraryK
typeclass to make better use ofkind-generics
.
prepropLaw
now synthesizes a monadic prelude and postlude to your laws, to ensure they hold under every context. The type has changed as a result.prepropEquivalent
now allows you to produce a functorf
result, so you can check equivalence of the underlying state as well.
- Updated the signature of
prepropEquivalent
to take aProxy r
. This lets you bind ther
type variable, and use it as an argument toarbitraryAction
et al.
- Released!