[commit: ghc] master: Make Generic1 poly-kinded (b8e2565)
git at git.haskell.org
git at git.haskell.org
Thu May 12 13:40:07 UTC 2016
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/b8e2565123de45f215277e3a92fbc7ace2b8fd71/ghc
>---------------------------------------------------------------
commit b8e2565123de45f215277e3a92fbc7ace2b8fd71
Author: RyanGlScott <ryan.gl.scott at gmail.com>
Date: Wed May 11 15:57:48 2016 +0200
Make Generic1 poly-kinded
This generalizes the `Generic1` typeclass to be of kind `k -> *`, and
this also makes the relevant datatypes and typeclasses in `GHC.Generics`
poly-kinded. If `PolyKinds` is enabled, `DeriveGeneric` derives
`Generic1` instances such that they use the most general kind possible.
Otherwise, deriving `Generic1` defaults to make an instance where the
argument is of kind `* -> *` (the current behavior).
Fixes #10604. Depends on D2117.
Test Plan: ./validate
Reviewers: kosmikus, dreixel, goldfire, austin, hvr, simonpj, bgamari
Reviewed By: simonpj, bgamari
Subscribers: thomie, ekmett
Differential Revision: https://phabricator.haskell.org/D2168
GHC Trac Issues: #10604
>---------------------------------------------------------------
b8e2565123de45f215277e3a92fbc7ace2b8fd71
compiler/typecheck/TcDeriv.hs | 90 ++--
compiler/typecheck/TcGenGenerics.hs | 114 +++--
docs/users_guide/glasgow_exts.rst | 14 +-
libraries/base/Data/Data.hs | 3 +-
libraries/base/GHC/Generics.hs | 115 +++--
libraries/base/changelog.md | 3 +
.../should_compile => generics/T10604}/Makefile | 0
.../tests/generics/T10604/T10604_Authenticated.hs | 41 ++
.../T10604/T10604_bad_variable_occurrence.hs | 8 +
.../T10604/T10604_bad_variable_occurrence.stderr | 6 +
testsuite/tests/generics/T10604/T10604_deriving.hs | 22 +
.../tests/generics/T10604/T10604_deriving.stderr | 518 +++++++++++++++++++++
.../tests/generics/T10604/T10604_no_PolyKinds.hs | 7 +
.../generics/T10604/T10604_no_PolyKinds.stderr | 6 +
testsuite/tests/generics/T10604/all.T | 4 +
testsuite/tests/perf/compiler/all.T | 3 +-
testsuite/tests/perf/haddock/all.T | 6 +-
17 files changed, 837 insertions(+), 123 deletions(-)
Diff suppressed because of size. To see it, use:
git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc b8e2565123de45f215277e3a92fbc7ace2b8fd71
More information about the ghc-commits
mailing list