Make the tyvars in TH-reified data family instances uniform
authorRyan Scott <ryan.gl.scott@gmail.com>
Fri, 28 Apr 2017 17:24:31 +0000 (13:24 -0400)
committerBen Gamari <ben@smart-cactus.org>
Fri, 28 Apr 2017 17:24:40 +0000 (13:24 -0400)
commitb2c38d6b4003d3dda60d15204283da5aab15c2ec
tree8763cfa9d7840f4ca6fca7bafd5e72ead4c2c2a4
parent69b9b853e3e68191cdfa8aec0e4da966298a2659
Make the tyvars in TH-reified data family instances uniform

It turns out we were using two different sets of type variables when
reifying data family instances in Template Haskell. We were using the
tyvars quantifying over the instance itself for the LHS, but using the
tyvars quantifying over the data family instance constructor for the
RHS. This commit uses the instance tyvars for both the LHS and the RHS,
fixing #13618.

Test Plan: make test TEST=T13618

Reviewers: goldfire, austin, bgamari

Reviewed By: goldfire, bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #13618

Differential Revision: https://phabricator.haskell.org/D3505
compiler/typecheck/TcSplice.hs
testsuite/tests/th/T13618.hs [new file with mode: 0644]
testsuite/tests/th/T13618.stdout [new file with mode: 0644]
testsuite/tests/th/all.T