Changelog for row-types-1.0.0.0
1.0.0.0 [2020-09-12]
This release has many breaking changes, specifically to metamorph
and some functions related to Variant
, hence the major version bump to 1.0
. However, users that only use basic features of records may not notice a difference.
- Removed
metamorph'
andbiMetamorph'
in favor of generalizingmetamorph
over choice of bifunctor. - Removed "unsafe" functions (
unsafeRemove
andunsafeInjectFront
fromRecords
andunsafeMarkVar
andunsafeInjectFront
fromVariants
). - Removed
Switch
class, reimplementing theswitch
function usingBiForall
. - Swap the order of the result of calling
trial
,multiTrial
, andsplit
. - Added new functions to
Records
:lazyRemove
,curryRec
,(.$)
,zipTransform
,zipTransform'
,traverse
,traverseMap
,distribute
, andcoerceRec
. - Added new functions to
Variants
:fromLabelsMap
,traverse
,traverseMap
, andcoerceVar
. - Added
Dictionaries
module, full of axioms that are helpful for usingmetamorph
. Moved axioms fromInternal
toDictionaries
(in some cases, the type variable order has changed). - Added
ApSingle
type family as well aseraseSingle
,mapSingle
, anderaseZipSingle
(thanks Jordan Woehr!). - Improved error messages.
Note: GHC 8.4 and earlier are no longer officially supported in row-types 1.0.0.0.
0.4.0.0 [2020-05-20]
- Renamed
toNative
totoNativeGeneral
andtoNativeExact
totoNative
for records and likewise forfromNative
for variants. - Added a type family
NativeRow
which, when given any generic type that can go throughfromNative
, is equal to the row-type of the resulting record/variant. Note thatNativeRow
is defined separately (and differently!) for records vs variants, so it is exported at theData.Row.Records
/Variants
level but not atData.Row
. - Added
coerceRec
andcoerceVar
to coerce the row-types of records and variants respectively. - Exposed
BiForall
inData.Row
,Data.Row.Records
, andData.Row.Variants
- (Internal) Rewrote internal
Generic
code to use an associated type family instead of a standalone one.
Note: GHC 8.2 and earlier are no longer officially supported in row-types 0.4.0.0.
0.3.1.0 [2020-01-29]
- Added "native" classes as exports for
Records
andVariants
(e.g.,ToNative
,FromNative
) - Added more example hs files.
0.3.0.0 [2019-05-28]
- Added
HasField
andAsConstructor
instances (from generic-lens) forRec
andVar
respectively. - Added record-overwrite function
.//
. - Added
Generic
instances for Rec and Var. - Added mapHas entailment connecting
Map f r .! l
tor .! l
. - Changed
Forall2
toBiForall
.- Added
BiConstraint
type class for use withBiForall
.
- Added
- Added
Ap
type family that functions asap
over rows using zipping.- Added
mapF
to map a function over a record with anAp
row.
- Added
- Added
toDynamicMap
andfromDynamicMap
as functions to convert betweenRec
s andHashMap Text Dynamic
s. - Added
toNativeExact
to convert aRec
to a native Haskell type without losing any fields. - Added
toNative
,fromNative
, andfromNativeExact
forVar
s. - Added
unSingleton
forVar
s.- Removed
unSingleton
fromData.Row
export list.
- Removed
- Tightened the type signatures of
focus
(for bothRec
andVar
) to improve type inference when usingfocus
in lens-like situations.
0.2.3.1 [2018-07-11]
- Fix a bug in the
Show
instance forRec
.
0.2.3.0 [2018-07-02]
- Update the
Show
instance forRec
to render valid code. - Add
toNative
andfromNative
functions for records to easily convert between Haskell records and row-types records. - Make type families in
Data.Row.Internal
polykinded (thanks James Yu!)
0.2.1.0 [2018-03-20]
- Bug Fix: The type of
update
for bothRec
andVar
now enforce the newly inserted type is correct. - New: Add
restrict
andsplit
forVar
s.- Removed
restrict
fromData.Row
export list.
- Removed
- New: Added support for universally quantified rows:
mapForall
anduniqueMap
. - Added very simple test suite.
0.2.0.0 [2018-02-12]
- Initial Release