monoid-subclasses v1.0 Release Notes
-
- ๐ Fixed issue #24, unlawful LeftReductiveMonoid instance for Map
- Tightened the laws of GCD classes, dropped instances for Sum and Product
- Introduced the
Monus
class - Introduced the
OverlappingGCDMonoid
class - โ Added the instances of type
Sum Natural
andProduct Natural
- Using the language extensions 'FlexibleInstances' and 'OverlappingInstances'
- โ Removed the linear complexity requirement
- โ Added and documented less efficient instances
- ๐ Moved various GCD classes into the new module
Data.Monoid.GCD
- โ Added module
Data.Semigroup.Cancellative
withSemigroup
subclasses - โ Added module
Data.Semigroup.Factorial
withSemigroup
subclasses - ๐ Deprecated several
Monoid
subclasses and made them constraint synonyms instead:type CommutativeMonoid m = (Monoid m, Commutative m)
type ReductiveMonoid m = (Monoid m, Reductive m)
type LeftReductiveMonoid m = (Monoid m, LeftReductive m)
type RightReductiveMonoid m = (Monoid m, RightReductive m)
type CancellativeMonoid m = (Monoid m, Cancellative m)
type LeftCancellativeMonoid m = (Monoid m, LeftCancellative m)
type RightCancellativeMonoid m = (Monoid m, RightCancellative m)