Maintainer | bastiaan.heeren@ou.nl |
---|---|

Stability | provisional |

Portability | portable (depends on ghc) |

Safe Haskell | None |

Language | Haskell2010 |

## Synopsis

- 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 a Source #

leftIdentity :: Monoid a => Law a Source #

rightIdentity :: Monoid a => Law a Source #

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

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

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

idempotent :: Monoid a => Law a Source #

Not all monoids are idempotent (see: idempotentFor)

# Group laws

leftInverse :: Group a => Law a Source #

rightInverse :: Group a => Law a Source #

doubleInverse :: Group a => Law a Source #

inverseIdentity :: Group a => Law a Source #

inverseDistrFlipped :: Group a => Law a Source #

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

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

# Abelian group laws

commutative :: Monoid a => Law a Source #

inverseDistr :: Group a => Law a Source #

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

# Laws for monoids with a zero element

leftZero :: MonoidZero a => Law a Source #

rightZero :: MonoidZero a => Law a Source #

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

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

# Generalized laws

associativeFor :: (a -> a -> a) -> Law a Source #

commutativeFor :: (a -> a -> a) -> Law a Source #

idempotentFor :: (a -> a -> a) -> Law a Source #

leftDistributiveFor :: (a -> a -> a) -> (a -> a -> a) -> Law a Source #

rightDistributiveFor :: (a -> a -> a) -> (a -> a -> a) -> Law a Source #