prairie-0.1.1.0: ChangeLog.md
# Changelog for prairie
## 0.1.1.0
- [#24](https://github.com/parsonsmatt/prairie/pull/24)
- Introduce `sequenceRecordA`, for monadic tabulation of values, using `Distributed`.
- [#29](https://github.com/parsonsmatt/prairie/pull/29)
- Bump `template-haskell` bound to 2.25
## 0.1.0.0
- [#22](https://github.com/parsonsmatt/prairie/pull/22)
- Don't emit unused type variables
- [#20](https://github.com/parsonsmatt/prairie/pull/20)
- Add `tabulateRecordApply` which is like `tabulateRecordA` but allows you to use non-Applicaive effects.
- `Prairie.Fold`: `foldMapRecord` now works with any `Semigroup` instead of any `Monoid`, allowing you to fold into a `NonEmpty` list.
- `Prairie.Traverse`:
- `traverseRecord_` introduced as a slightly more efficient form of `void . traverseRecord f`.
- `traverseFields` and `traverseFields_` introduced to only operate on fields, not requiring a whole record.
- `traverseFieldsWithDict` (and `_` suffix variant) introduced to operate on fields with a constraint available.
- [#5](https://github.com/parsonsmatt/prairie/pull/5), [#21](https://github.com/parsonsmatt/prairie/pull/21)
- The `Prairie.Distributed` module is made available.
This allows you to define records that are constructed on a per-field basis in some effect type.
- [#23](https://github.com/parsonsmatt/prairie/pull/23)
- Generated code is no longer ambiguous or faulty in the case of `NoFieldSelectors` or `DuplicateRecordFields`.
- `mkRecord` now requires `TypeApplications` to compile.
## 0.0.4.1
- [#18](https://github.com/parsonsmatt/prairie/pull/18)
- Drop `lens` dependency
## 0.0.4.0
- [#13](https://github.com/parsonsmatt/prairie/pull/13)
- Introduce `Prairie.Semigroup`, allowing you to combine two records by semigroup-appending their fields together.
- Introduce `Prairie.Zip`, allowing you to combine two records by specifying how to combine their fields. This fuels `Prairie.Semigroup`.
- Introduce `Prairie.Monoid`, allowing you to make an `emptyRecord` with `mempty` at each field.
- Introduce `Prairie.AsRecord`, allowing you to derive instances for records based on their `Record` and `FieldDict` instances.
## 0.0.3.0
- [#8](https://github.com/parsonsmatt/prairie/pull/8)
- The `Prairie.Fold` module is introduced, allowing you to fold records.
- The `Prairie.Traverse` module is introduced, allowing you to traverse over records.
## 0.0.2.1
- [#6](https://github.com/parsonsmatt/prairie/pull/6)
- Bump upper bound for `TemplateHaskell`, supporting up to GHC 9.8
- Fix string literals in docs that were quoted as module names
## 0.0.2.0
- [#2](https://github.com/parsonsmatt/prairie/pull/2)
- Add `tabulateRecordA` to `Record` class. `tabulate` and `allFields` are now normal functions.
- Provide a default implementation of `recordFieldLabel` for `Show`able fields.
## 0.0.1.1
* [#4](https://github.com/parsonsmatt/prairie/pull/4)
* Compatibility with `template-haskell-2.18` and above