BSD-3-Clause licensed by Matt Parsons
This version can be pinned in stack with:prairie-0.1.0.0@sha256:e816c9632dcbea23d1a7613a00b04678b9f5ebeda249d2a5445420f034a3084d,2256
Module documentation for 0.1.0.0
prairie

A library for first class record fields.
Changelog for prairie
0.1.0.0
- #22
- Don’t emit unused type variables
- #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, #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
- 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
0.0.4.0
- #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
- 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
- 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
- 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
- Compatibility with
template-haskell-2.18
and above