summaryrefslogtreecommitdiff
path: root/testsuite/tests/th/T9692.stderr
diff options
context:
space:
mode:
authorRyan Scott <ryan.gl.scott@gmail.com>2018-11-08 10:26:48 -0500
committerRyan Scott <ryan.gl.scott@gmail.com>2018-11-08 10:26:48 -0500
commit63a817074a8d49798bfd46a6545906fff143e924 (patch)
treea57848924bb854f5adf33957951cbed076c2bceb /testsuite/tests/th/T9692.stderr
parent932cd41d8c7984c767c1b3b58e05146f69cc5c15 (diff)
downloadhaskell-63a817074a8d49798bfd46a6545906fff143e924.tar.gz
Fix #15845 by defining etaExpandFamInstLHS and using it
Summary: Both #9692 and #14179 were caused by GHC being careless about using eta-reduced data family instance axioms. Each of those tickets were fixed by manually whipping up some code to eta-expand the axioms. The same sort of issue has now caused #15845, so I figured it was high time to factor out the code that each of these fixes have in common. This patch introduces the `etaExpandFamInstLHS` function, which takes a family instance's type variables, LHS types, and RHS type, and returns type variables and LHS types that have been eta-expanded if necessary, in the case of a data family instance. (If it's a type family instance, `etaExpandFamInstLHS` just returns the supplied type variables and LHS types unchanged). Along the way, I noticed that many references to `Note [Eta reduction for data families]` (in `FamInstEnv`) had slightly bitrotted (they either referred to a somewhat different name, or claimed that the Note lived in a different module), so I took the liberty of cleaning those up. Test Plan: make test TEST="T9692 T15845" Reviewers: goldfire, bgamari Reviewed By: goldfire Subscribers: rwbarton, carter GHC Trac Issues: #15845 Differential Revision: https://phabricator.haskell.org/D5294
Diffstat (limited to 'testsuite/tests/th/T9692.stderr')
-rw-r--r--testsuite/tests/th/T9692.stderr3
1 files changed, 2 insertions, 1 deletions
diff --git a/testsuite/tests/th/T9692.stderr b/testsuite/tests/th/T9692.stderr
index ffa55365d4..070e4d3005 100644
--- a/testsuite/tests/th/T9692.stderr
+++ b/testsuite/tests/th/T9692.stderr
@@ -1,2 +1,3 @@
data family T9692.F (a_0 :: k_1) (b_2 :: k_3) :: *
-data instance T9692.F GHC.Types.Int (x_4 :: *) = T9692.FInt x_4
+data instance forall (x_4 :: *). T9692.F GHC.Types.Int (x_4 :: *)
+ = T9692.FInt x_4