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 and Product 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 with Semigroup subclasses
    • โž• Added module Data.Semigroup.Factorial with Semigroup 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)