commutative-semigroups

Commutative semigroups

Version on this page:0.1.1.0
LTS Haskell 22.39:0.1.1.0
Stackage Nightly 2024-10-29:0.2.0.1
Latest on Hackage:0.2.0.1

See all snapshots commutative-semigroups appears in

BSD-3-Clause licensed by Nathan "Taneb" van Doorn
Maintained by [email protected]
This version can be pinned in stack with:commutative-semigroups-0.1.1.0@sha256:b91fe157f1b22ef334018922e5773a3fcf8e716dc9e12d8907a2930b7a4f3bda,1106

Module documentation for 0.1.1.0

Depends on 2 packages(full list with versions):
Used by 1 package in lts-22.31(full list with versions):

Commutative Semigroup

Haskell Hackage BSD3 License

A commutative semigroup is a semigroup where the order of arguments to mappend does not matter.

class Semigroup g => Commutative g

Changes

Revision history for commutative-semigroups

0.1.1.0 – 2024-03-24

  • Added more trivial instances for semigroups from base

0.1.0.2 – 2023-12-22

  • Support GHC 9.8.1

0.1.0.1 – 2023-04-17

  • Loosen version bounds
  • Support GHC 9.6.1

0.1.0.0 – 2022-06-12

  • Commutative (Product a) now requires CommutativeProduct a. CommutativeProduct is a new class to indicate (*) from Num is commutative, which is not required by Num. (Example: multiplication on quaternions is non-commutative, and the Quaternion a type from the linear package has a valid instance RealFloat a => Num (Quaternion a).)

    Remark: There is also no canonical subclass class in the Num hierarchy which implies commutative (*), as both Integral and Floating instances work here:

    • Integral instances are customarily Euclidean Domains, which are commutative rings with extra conditions.

    • Floating instances customarily expect (+), (*), and exp to form an exponential field, which is also a commutative ring with extra conditions.

0.0.2.0 – 2022-03-26

  • Add instance Ord a => Commutative (Set a)
  • Add instance Commutative IntSet

0.0.1.0 – 2021-01-28

  • Add instance for Maybe.

0.0.0.0 – 2021-01-06

Initial version, created from groups package.