Changelog for commutative-semigroups-0.1.0.0
Revision history for commutative-semigroups
0.1.0.0 -- 2022-06-12
-
Commutative (Product a)
now requiresCommutativeProduct a
.CommutativeProduct
is a new class to indicate(*)
fromNum
is commutative, which is not required byNum
. (Example: multiplication on quaternions is non-commutative, and theQuaternion a
type from thelinear
package has a validinstance RealFloat a => Num (Quaternion a)
.)Remark: There is also no canonical subclass class in the
Num
hierarchy which implies commutative(*)
, as bothIntegral
andFloating
instances work here:-
Integral
instances are customarily Euclidean Domains, which are commutative rings with extra conditions. -
Floating
instances customarily expect(+)
,(*)
, andexp
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.