summaryrefslogtreecommitdiff
path: root/testsuite/tests/polykinds/T9263b.hs
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2014-07-15 07:43:55 +0100
committerSimon Peyton Jones <simonpj@microsoft.com>2014-07-15 07:43:55 +0100
commit9b8ba62991ae22420a0c4486127a3b22ee7f22bd (patch)
tree69e03640c54a4393efe91a5f184b764692460808 /testsuite/tests/polykinds/T9263b.hs
parentf692e8e7cde712cc4dce4245d5745063fd8b0626 (diff)
downloadhaskell-9b8ba62991ae22420a0c4486127a3b22ee7f22bd.tar.gz
Entirely re-jig the handling of default type-family instances (fixes Trac #9063)
In looking at Trac #9063 I decided to re-design the default instances for associated type synonyms. Previously it was all jolly complicated, to support generality that no one wanted, and was arguably undesirable. Specifically * The default instance for an associated type can have only type variables on the LHS. (Not type patterns.) * There can be at most one default instances declaration for each associated type. To achieve this I had to do a surprisingly large amount of refactoring of HsSyn, specifically to parameterise HsDecls.TyFamEqn over the type of the LHS patterns. That change in HsDecls has a (trivial) knock-on effect in Haddock, so this commit does a submodule update too. The net result is good though. The code is simpler; the language specification is simpler. Happy days. Trac #9263 and #9264 are thereby fixed as well.
Diffstat (limited to 'testsuite/tests/polykinds/T9263b.hs')
-rw-r--r--testsuite/tests/polykinds/T9263b.hs8
1 files changed, 8 insertions, 0 deletions
diff --git a/testsuite/tests/polykinds/T9263b.hs b/testsuite/tests/polykinds/T9263b.hs
new file mode 100644
index 0000000000..d267eaca79
--- /dev/null
+++ b/testsuite/tests/polykinds/T9263b.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE DataKinds, PolyKinds, TypeFamilies #-}
+module T9263b where
+
+import Data.Proxy
+
+class kproxy ~ 'KProxy => PEq (kproxy :: KProxy a) where
+ type F (x :: a) :: Bool
+ type F (x :: a) = False