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

Module documentation for 0.2.0.1

Depends on 2 packages(full list with versions):
Used by 1 package in nightly-2024-10-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.2.0.1 – 2024-05-18

  • Loosen dependency bounds for GHC 9.10, thanks to yaitskov

0.2 – 2024-04-09

  • Removed the instances for the Event and Lifetime types unavailable on Windows

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.