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.
- class Monoid g => Group g where
- inverse :: g -> g
- class Monoid m => Abelian m
- data FreeInverse a
- = FreeInverse !a
- | Negate !a
- class Invertible a where
- module Data.Monoid
Algebra
class Monoid g => Group g whereSource
Groups are monoids that also have an inverse. See https://en.wikipedia.org/wiki/Regular_semigroup
Non-algebraic
data FreeInverse a Source
FreeInverse !a | |
Negate !a |
Eq a => Eq (FreeInverse a) | |
Ord a => Ord (FreeInverse a) | |
Read a => Read (FreeInverse a) | |
Show a => Show (FreeInverse a) | |
Eq a => Invertible (FreeInverse a) |
class Invertible a whereSource
Eq a => Invertible (FreeInverse a) |
module Data.Monoid