Safe Haskell | None |
---|
These algebraic structures have sacrificed generality in favor of being easily used with the standard Haskell Prelude. The fact that monoids are not guaranteed to be semigroups makes this difficult.
- data RegularSemigroup sg => RegSG2Group sg
Documentation
data RegularSemigroup sg => RegSG2Group sg Source
Convert any regular semigroup into a group (and thus also a monoid) by adding a unique identity element
(RightOperator r sg, RegularSemigroup sg) => RightOperator r (RegSG2Group sg) | |
(LeftOperator r sg, RegularSemigroup sg) => LeftOperator r (RegSG2Group sg) | |
(Eq sg, RegularSemigroup sg) => Eq (RegSG2Group sg) | |
(Eq (RegSG2Group sg), Ord sg, RegularSemigroup sg) => Ord (RegSG2Group sg) | |
(Read sg, RegularSemigroup sg) => Read (RegSG2Group sg) | |
(Show sg, RegularSemigroup sg) => Show (RegSG2Group sg) | |
RegularSemigroup sg => Monoid (RegSG2Group sg) | |
(RegularSemigroup sg, NFData sg) => NFData (RegSG2Group sg) | |
RegularSemigroup sg => Semigroup (RegSG2Group sg) | |
(RegularSemigroup (RegSG2Group sg), Monoid (RegSG2Group sg), RegularSemigroup sg) => Group (RegSG2Group sg) | |
(Semigroup (RegSG2Group sg), RegularSemigroup sg) => RegularSemigroup (RegSG2Group sg) |