Safe Haskell | None |
---|
HLearn.Algebra.Structures.Free.RegSG2Group
Description
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
Instances
(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) |