0.4 [2017.12.07]
- Incorporate changes from the
EmptyDataDeriving
proposal (which is in GHC
as of 8.4):
- For derived
Eq
and Ord
instances for empty data types, simply return
True
and EQ
, respectively, without inspecting the arguments.
- For derived
Read
instances for empty data types, simply return pfail
(without parens
).
- For derived
Show
instances for empty data types, inspect the argument
(instead of error
ing). In addition, add showEmptyCaseBehavior
to
ShowOptions
, which configures whether derived instances for empty data
types should use the EmptyCase
extension (this is disabled by default).
- For derived
Functor
and Traversable
instances for empty data
types, make fmap
and traverse
strict in its argument.
- For derived
Foldable
instances, do not error on empty data types.
Instead, simply return the folded state (for foldr
) or mempty
(for
foldMap
), without inspecting the arguments.
- Add
FFTOptions
(Functor
/Foldable
/Traversable
options) to
Data.Functor.Deriving
, along with variants of existing functions that
take FFTOptions
as an argument. For now, the only configurable option is
whether derived instances for empty data types should use the EmptyCase
extension (this is disabled by default).
- Backport the fix to #13328. That is, when deriving
Functor
or
Traversable
instances for data types where the last type variable is at
phantom role, generated fmap
/traverse
implementations now use coerce
for efficiency.
- Rename
emptyCaseBehavior
from Data.Functor.Deriving
to
fftEmptyCaseBehavior
.
0.3.6 [2017.04.10]
- Make
deriveTraversable
use liftA2
in derived implementations of
traverse
when possible, now that liftA2
is a class method of
Applicative
(as of GHC 8.2)
- Make
deriveShow
use showCommaSpace
, a change introduced in GHC 8.2
0.3.5 [2016.12.12]
- Fix bug in which derived
Ord
instances for datatypes with many constructors
would fail to typecheck
0.3.4 [2016.10.20]
- Fix bug in which infix record selectors weren't shown with parentheses in derived
Show
instances
- Fix bug in which record selectors weren't parsed correctly in derived
Read
instances
0.3.3 [2016.09.11]
- Add
Data.Bounded.Deriving
, which allows deriving Bounded
with TH.
- Add
Data.Enum.Deriving
, which allows deriving Enum
with TH.
- Add
Data.Ix.Deriving
, which allows deriving Ix
with TH.
- Fix bug in which derived
Show
instance would parenthesize the output too eagerly
0.3.2
- Incorporate a fix to GHC Trac #10858, which will be introduced in GHC 8.2
- Fix bug in which derived
Ord
instances accidentally swapped their less-than(-or-equal-to) and greater-than(-or-equal-to) methods
- Fix GHC HEAD build
0.3.1
- Allow deriving
Functor
and Foldable
instances for datatypes containing unboxed tuples
- Microoptimization in derived instances of higher-order versions of
Eq
, Ord
, Read
, and Show
0.3
- Added
Data.Eq.Deriving
, which allows deriving Eq
, Eq1
, and Eq2
with TH.
- Added
Data.Ord.Deriving
, which allows deriving Ord
, Ord1
, and Ord2
with TH.
- Added
Data.Read.Deriving
, which allows deriving Read
, Read1
, and Eq2
with TH.
- Renamed
Text.Show.Deriving.Options
to ShowOptions
so as to disambiguate it from the options datatypes in other deriving-compat
modules.
0.2.2
- Fixed a bug in
Text.Show.Deriving
's treatment of unlifted types
0.2.1
- Added
Text.Show.Deriving
, which allows deriving Show
, Show1
, and Show2
with TH.
0.2
- Added support for GHC 8.0
- Added
Data.Functor.Deriving
and Data.Traversable.Deriving
, which allow deriving Functor
and Traversable
with TH.
- Added
Data.Deriving
, which reexports all other modules
0.1