diff options
author | Ryan Scott <ryan.gl.scott@gmail.com> | 2018-02-18 11:00:40 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-02-18 11:56:10 -0500 |
commit | 1ede46d415757f53af33bc6672bd9d3fba7f205d (patch) | |
tree | aaee812b927a533c180d2f3695768fb24dc9b22d /docs | |
parent | 908046608bff517f1cc34d743681e177b0f46a05 (diff) | |
download | haskell-1ede46d415757f53af33bc6672bd9d3fba7f205d.tar.gz |
Implement stopgap solution for #14728
It turns out that one can produce ill-formed Core by
combining `GeneralizedNewtypeDeriving`, `TypeInType`, and
`TypeFamilies`, as demonstrated in #14728. The root of the problem
is allowing the last parameter of a class to appear in a //kind// of
an associated type family, as our current approach to deriving
associated type family instances simply doesn't work well for that
situation.
Although it might be possible to properly implement this feature
today (see https://ghc.haskell.org/trac/ghc/ticket/14728#comment:3
for a sketch of how this might work), there does not currently exist
a performant implementation of the algorithm needed to accomplish
this. Until such an implementation surfaces, we will make this corner
case of `GeneralizedNewtypeDeriving` an error.
Test Plan: make test TEST="T14728a T14728b"
Reviewers: bgamari
Reviewed By: bgamari
Subscribers: rwbarton, thomie, carter
GHC Trac Issues: #14728
Differential Revision: https://phabricator.haskell.org/D4402
Diffstat (limited to 'docs')
0 files changed, 0 insertions, 0 deletions