# Changelog for free-algebras ## Version 0.1.0.1 - Compatible with ghc-9.0.1 ## Version 0.1.0.0 - Added 'DNonEmpty' fre semigroup in the class of all semigroups. - Use strict @foldl'@ ## Version 0.0.8.0 - Added two properties for each: `foldMapFree`, `foldNatFree` and `foldNatFree2`. - Added default implementations of `codom` / `forget`, `codom1` / `forget` and `codom2` / `forget2`, what simplifies writting instances. - Changed internal representation of FreeAbelianSemigroup: use Natural - removed `natural-number` dependency and use `Numeric.Natural.Natural` instead. - Applicative instance for `FreeMAction`. - Added `Free1` type. - Removed `constraints` dependency. - Renamed `Data.Semigroup.SemiLattice` to `Data.Semigroup.Semilattice`, also `FreeSemiLattice` renamed to `FreeSemilattice`. - various optimisation (rewrite rules & inline pragmas) ## Version 0.0.7.2 - Enhanced documentation, and properly attributed fix in ChangeLog. ## Version 0.0.7.1 - `Data.Group.Free.normalize` and `Data.Group.Free.normalizeL` are not both `O(n)`, but the former is implemented using the latter (e.g. transforms `DList` to a list), by Justin Le (https://github.com/mstsg) ## Version 0.0.7.0 - Poly kinded `Control.Algebra.Free.FreeAlgebra` and `Control.Algebra.Free2.FreeAlgebra2` - removed actions (MSet, SSet), use `monoid-extras` or `semigroups-actions` packages ## Version 0.0.6.0 - `Num a => SSet (Sum a) a` and `Num a => SSet (Product a) a` instances - `Num a => MSet (Sum a) a` and `Num a => MSet (Product a) a` instances - removed some overlapping instances for `SSet` and `MSet` - `Control.Algebra.Free2` module, see `free-category` package for applications. ## Version 0.0.5.1 - Improved documentation ## Version 0.0.5.0 - `FreeAlgebra` renamed `proof` to `codom`, added `Proof` smart constructor `proof`. - `FreeAlgebra` instance for `Identity` functor - generic `Free` type - `DList` and `FreeGroup` based on `DList`, `FreeGroupL` - documentation on strictness / laziness improved ## Version 0.0.4.0 - `S` new type wrapper in `SSet`, and overlappable instance for `SSet s a => SSet (S s) (Endo a)` - `foldrFree` and friends - `foldrMSet` - documented intersection with `monad-mmorph` package. ## Version 0.0.3.0 - Breaking change: changed proofs in FreeAlgebra and FreeAlgebra1 class; now using `FreeAlgebra` and `FreeAlgebra1` classes let us deduce an adjunction. - Monadicity example ## Version 0.0.2.0 - Simplified `Proof` type.