Changelog for overloaded-records-0.4.2.0
ChangeLog / ReleaseNotes
Version 0.4.2.0
Rec instances for Eq1, Ord1, Show1, Eq, Ord, and Show.
Instances for Eq1, Ord1 and Show1 are available only with transformers
==0.5.* or with base >=4.9 (i.e. GHC >=8). (new)
- Introducing
WrappedLensLike data type along with a simplified type
WrappedLensLike'. For each of these we have corresponding lns and lns'
operation for unpacking WrappedLensLike. (new)
lns :: WrappedLensLike f s t a b -> (a -> f b) -> s -> f t
lns' :: WrappedLensLike' f s a -> (a -> f a) -> s -> f s
- Allowing fields/accessors to occur in multiple data constructors by not
creating duplicit instances, thanks to
Andy Morris. See
pull request #2.
(change)
- Data type
Label (l :: Symbol) that can be used to pass label value around.
(new)
- Instances for
fst, snd, thd and curry fields for 11-tuples, 12-tuples
up to 15-tuples. (new)
- Instances for
head and tail fields for NonEmpty list. (new)
- Instances for
HasField and ModifyField Rec context r where r is
monomorphic. This is just a poor man's instance, since its usability is very
limited, but helpful in those special cases. Hopefully we will be able to
find a way how to define overloaded records machinery for Rec context r in
general. (new)
Version 0.4.1.0
Version 0.4.0.0
- Renamed
SetField type class to ModifyField, it now contains following
methods (breaking change):
modifyField :: Proxy# l -> (a -> b) -> s -> t
setField :: Proxy# l -> s -> b -> t
fieldLens :: Functor f => Proxy# l -> (a -> f b) -> s -> f t
- Instances for tuples (i.e.
(a, b), (a, b, c), ...) and lists (i.e.
[a]). (new)
- Definitions from
Data.OverloadedRecords.TH were moved to
Data.OverloadedRecords.TH.Internal, so that API can be split in to stable
and unstable (internal) API. (change)
- Aliases
HasField' and ModifyField' that enforce s = t and a = b. This
is similar to definitions like Lens'. Simplified versions of methods and
functions are included using the same naming convention. (new)
Setter and Setter' changed to type aliases for Modifier type.
(breaking change)
- Introducing
Setting type alias for Modifier along with setting, which
is an alternative to set operation. (new)
setting :: Setting a s t b -> Proxy a -> b -> s -> t
- Changed order of arguments of functions
set and set' (breaking
change):
set :: Setter s t b -> b -> s -> t
set' :: Setter' s a -> a -> s -> s
- Introduced type family
R that can be used to define more compact type
signatures when mentioning multiple record fields in it. (new)
- Uploaded to Hackage:
http://hackage.haskell.org/package/overloaded-records-0.4.0.0
Version 0.3.0.0
- Fixed defaultMakeFieldName, which actually behaved correctly only in very few
cases. (bug fix)
- Added missing
HAVE_OVERLOADED_LABELS macro, that actually allows us to use
GHC's IsLabel on GHC >8. (bug fix)
- Exposing previously hidden
FromArrow and IsFieldAccessor. (change)
- Few simple unit tests. (new)
- Uploaded to Hackage:
http://hackage.haskell.org/package/overloaded-records-0.3.0.0
Version 0.2.0.0
- Function
overloadedRecords renamed to overloadedRecord. There is also new
overloadedRecords function, that behaves as overloadedRecord, but for
multiple types at once. (breaking change)
- It is now possible to customize overloadedRecord* family of functions with
custom getter and setter implementation. (new)
- Types and functions follow, hopefully, better naming conventions. (change)
- More low-level template haskell functions for those cases when it is
necessary to build your own higher-level ones, or when you need much more
control over the result. (new)
- Uploaded to Hackage:
http://hackage.haskell.org/package/overloaded-records-0.2.0.0
Version 0.1.0.0