Portability | portable (depends on ghc) |
---|---|

Stability | provisional |

Maintainer | bastiaan.heeren@ou.nl |

Safe Haskell | None |

- associative :: Monoid a => Law a
- leftIdentity :: Monoid a => Law a
- rightIdentity :: Monoid a => Law a
- identityLaws :: Monoid a => [Law a]
- monoidLaws :: Monoid a => [Law a]
- commutativeMonoidLaws :: Monoid a => [Law a]
- idempotent :: Monoid a => Law a
- leftInverse :: Group a => Law a
- rightInverse :: Group a => Law a
- doubleInverse :: Group a => Law a
- inverseIdentity :: Group a => Law a
- inverseDistrFlipped :: Group a => Law a
- inverseLaws :: Group a => [Law a]
- groupLaws :: Group a => [Law a]
- appendInverseLaws :: Group a => [Law a]
- commutative :: Monoid a => Law a
- inverseDistr :: Group a => Law a
- abelianGroupLaws :: Group a => [Law a]
- leftZero :: MonoidZero a => Law a
- rightZero :: MonoidZero a => Law a
- zeroLaws :: MonoidZero a => [Law a]
- monoidZeroLaws :: MonoidZero a => [Law a]
- associativeFor :: (a -> a -> a) -> Law a
- commutativeFor :: (a -> a -> a) -> Law a
- idempotentFor :: (a -> a -> a) -> Law a
- leftDistributiveFor :: (a -> a -> a) -> (a -> a -> a) -> Law a
- rightDistributiveFor :: (a -> a -> a) -> (a -> a -> a) -> Law a

# Monoid laws

associative :: Monoid a => Law aSource

leftIdentity :: Monoid a => Law aSource

rightIdentity :: Monoid a => Law aSource

identityLaws :: Monoid a => [Law a]Source

monoidLaws :: Monoid a => [Law a]Source

commutativeMonoidLaws :: Monoid a => [Law a]Source

idempotent :: Monoid a => Law aSource

Not all monoids are idempotent (see: idempotentFor)

# Group laws

leftInverse :: Group a => Law aSource

rightInverse :: Group a => Law aSource

doubleInverse :: Group a => Law aSource

inverseIdentity :: Group a => Law aSource

inverseDistrFlipped :: Group a => Law aSource

inverseLaws :: Group a => [Law a]Source

appendInverseLaws :: Group a => [Law a]Source

# Abelian group laws

commutative :: Monoid a => Law aSource

inverseDistr :: Group a => Law aSource

abelianGroupLaws :: Group a => [Law a]Source

# Laws for monoids with a zero element

leftZero :: MonoidZero a => Law aSource

rightZero :: MonoidZero a => Law aSource

zeroLaws :: MonoidZero a => [Law a]Source

monoidZeroLaws :: MonoidZero a => [Law a]Source

# Generalized laws

associativeFor :: (a -> a -> a) -> Law aSource

commutativeFor :: (a -> a -> a) -> Law aSource

idempotentFor :: (a -> a -> a) -> Law aSource

leftDistributiveFor :: (a -> a -> a) -> (a -> a -> a) -> Law aSource

rightDistributiveFor :: (a -> a -> a) -> (a -> a -> a) -> Law aSource