| Copyright | © 2022–2025 Jonathan Knowles |
|---|---|
| License | Apache-2.0 |
| Safe Haskell | None |
| Language | Haskell2010 |
Test.QuickCheck.Classes.Monoid.Factorial
Description
This module provides Laws definitions for classes exported by
Data.Monoid.Factorial.
Synopsis
- factorialMonoidLaws :: (Arbitrary a, Show a, Eq a, FactorialMonoid a) => Proxy a -> Laws
Documentation
factorialMonoidLaws :: (Arbitrary a, Show a, Eq a, FactorialMonoid a) => Proxy a -> Laws Source #
Laws for instances of FactorialMonoid.
Includes the following laws:
nulla==null(factorsa)
factorsa==(unfoldrsplitPrimePrefixa)factorsa==reverse(unfoldr(fmapswap.splitPrimeSuffix) a)
reversea==mconcat(reverse(factorsa))
primePrefixa==maybememptyfst(splitPrimePrefixa)primeSuffixa==maybememptysnd(splitPrimeSuffixa)
initsa==fmapmconcat(inits(factorsa))tailsa==fmapmconcat(tails(factorsa))
spanp a==bimapmconcatmconcat(spanp (factorsa))
all(all(not. p) .factors) (splitp a)
mconcat(interspersep (split(==p) a))==a
splitAti a==bimapmconcatmconcat(splitAti (factorsa))
Note that the following superclass laws are not included: