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 erroring). 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