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 RegSG2Group sg

# Documentation

data 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 => Eq (RegSG2Group sg) | |

Ord sg => Ord (RegSG2Group sg) | |

Read sg => Read (RegSG2Group sg) | |

Show sg => Show (RegSG2Group sg) | |

RegularSemigroup sg => Monoid (RegSG2Group sg) | |

(RegularSemigroup sg, NFData sg) => NFData (RegSG2Group sg) | |

RegularSemigroup sg => Semigroup (RegSG2Group sg) | |

RegularSemigroup sg => Group (RegSG2Group sg) | |

RegularSemigroup sg => RegularSemigroup (RegSG2Group sg) |