diff options
| author | Simon Peyton Jones <simonpj@microsoft.com> | 2014-07-15 07:43:55 +0100 |
|---|---|---|
| committer | Simon Peyton Jones <simonpj@microsoft.com> | 2014-07-15 07:43:55 +0100 |
| commit | 9b8ba62991ae22420a0c4486127a3b22ee7f22bd (patch) | |
| tree | 69e03640c54a4393efe91a5f184b764692460808 /testsuite/tests/polykinds/T9263b.hs | |
| parent | f692e8e7cde712cc4dce4245d5745063fd8b0626 (diff) | |
| download | haskell-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.hs | 8 |
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 |
