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