commutative-semigroups

Commutative semigroups

Version on this page:0.1.0.2
LTS Haskell 22.18:0.1.1.0
Stackage Nightly 2024-04-27:0.1.1.0
Latest on Hackage:0.2

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.0.2@sha256:3629c249ac5be72e48eac677969f0638e48b9199370b64ffcf6ceeac391ecc6e,1106

Module documentation for 0.1.0.2

Depends on 2 packages(full list with versions):
Used by 1 package in nightly-2024-03-29(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.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.