| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Data.Semigroup.Abelian
Synopsis
- class Semigroup m => AbelianSemigroup m
- data FreeAbelianSemigroup a
- toNonEmpty :: FreeAbelianSemigroup a -> NonEmpty (a, Integer)
- fromNonEmpty :: Ord a => NonEmpty (a, Integer) -> Maybe (FreeAbelianSemigroup a)
Documentation
class Semigroup m => AbelianSemigroup m Source #
Class of commutative monoids, e.g. with additional law:
a <> b = b <> a
Instances
data FreeAbelianSemigroup a Source #
Free abelian semigroup is isomorphic to a non empty map with keys a and
values positive natural numbers.
Instances
toNonEmpty :: FreeAbelianSemigroup a -> NonEmpty (a, Integer) Source #
fromNonEmpty :: Ord a => NonEmpty (a, Integer) -> Maybe (FreeAbelianSemigroup a) Source #
Smart constructor which creates FreeAbelianSemigroup from a non empty list
of pairs (a, n) :: (a, Integer) where n > 0.