- Updated to latest
kind-genericslibrary - Removed orphan instances for
Vieweffect, which is no longer in polysemy HEAD
prepropLawnow generates a newLawrecord, allowing for better control over the program prelude and postludesprepropLawnow takes a labeler, for running QuickCheck coverage
- Added a new function,
prepropAllCommutativewhich ensures every effect commutes with every other one.
prepropCommutativenow accepts arbitrary rows to draw actions from, rather than single effects.
- Removed the
xtype variable fromprepropEquivalent, since it is safe to instantiate arbitrarily, and leads to aggressive type errors if forgotten.
- Changed the frequencies of
Sem'sArbitraryinstance, to create more interesting programs. - Removed the program generator parameter of
prepropEquivalent. It now just uses theArbitraryinstance forSem. - Added some new examples to the test suite.
- Flattened the module structure of
Polysemy.Check.Arbitrary. - Fixed a bug where
arbitraryActionFromRowOfTypewould return bottom. - Added an
Arbitraryinstance forSem r a. - Added tests to prove all generators have a uniform distribution for actions.
prepropLawnow prints the actions it ran before and after your test.- Changed the orphan
Showinstances for standard Polysemy effects to more easily be used for testing coverage. - Added a
Showinstance forSomeEffOfType. - (Internal) Removed the
GArbitraryKTermclass
GArbitraryKnow supports actions that contain existential types.- (Internal) Aggressively rewrote the
GArbitraryKtypeclass to make better use ofkind-generics.
prepropLawnow synthesizes a monadic prelude and postlude to your laws, to ensure they hold under every context. The type has changed as a result.prepropEquivalentnow allows you to produce a functorfresult, so you can check equivalence of the underlying state as well.
- Updated the signature of
prepropEquivalentto take aProxy r. This lets you bind thertype variable, and use it as an argument toarbitraryActionet al.
- Released!